Chinaunix首页 | 论坛 | 博客
  • 博客访问: 925098
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类: 系统运维

2009-06-30 10:03:48

第六章 使用DispatchAction控制器
        1)使用DispatchAction控制器。可以让一个控制器执行几个相同或相似的操作,而不用写多个控制器
        2)比如:一个注册表单同时有两个提交按钮。一个提交按钮用来检查用户名是否存在,一个提交按钮
          用来执行注册功能,一般情况下会用两个控制器。但是可以通过DispatchAction来实现只用一个控           制器
        3)实现DispatchAction的步骤:
           1)创建一个Action此Action一定要继承自org.apache.struts.actions.DispatchAction
           2)删除里面的Excute方法(一定要删除)
           3)在里面加上若干个方法。其参数形式与Excute一样,只不过名字不一样
            public ActionForward check(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
               {
           在此执行check方法
              }
            public ActionForward register(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
               {
           在此执行register方法
              }
             4)在struts-config.xml文件中。配置Action通过参数来决定执行那些方法
              
               上面配置了一个parameter="method"表明Action会通过该参数的值调用对应的方法。也就是
               此Action会根据method的值来决定调用那个方法。如果method的值是"check"则调用check方法
               如果method的值是"register"则调用register方法
             5)然后在jsp页面中增加method参数值
                A)如果是post提交,则可以使用隐藏域来实现
          
       
       
      

        提交   
  

                 上面用了两个提交按钮,用了一个隐藏域。然后由提交按钮的单击事件中动态改变隐藏
                 域的值
               B:如果是get提交。则可以使用形如:
       检查
              注册
                    注意get提交千万不能带有空格
                      检查(错误错误)
            
                       应用举例:
                        1)添加与修改(添加与修改经常会共用一个表单,所以可以使用DispatchAction
                        2)检查用户名是否存在与注册
                        3)一个按钮用于根据工号查询,一个按钮用于把查询之后的结果进行修改
                        4)一个页面放入四个按钮。实现加减乘除
 


                   第七章 使用struts中的tiles框架技术使用模板页
               1)在开发Web应用程序时,常常要求同一个站点的所有Web页面保持一致的外观。比如
                 ---------------------------------
   | |          |        
    | |   header |
                 | |-------------------------
    |  Menu |   |
   | |    content  |
   | |         |
   | |------------------------  
   | |   |
   | | footer  |
   | |   |
   | |   |
                 ---------------------------------
              2)对同一个站点的所有页面,只有content部分的内容不同,如果采用基本的jsp语句来编  写所有web页面。显示会导致大量的重复编码,增加开发和维护成本,我们完全可以把
                其中不变的部分定义为模板。以后只要使用模板就行了
              3)struts中的tiles框架提供了这样一种模板页的实现方案
              4)tiles具体实现步骤:
                 A:做一个模板页。该模板页包括头,左边,顶边 model.jsp。
                      注意:
                          整个表格:800*600
                          左边宽:20%
                          右边宽:80%,高80%
                          顶边高:10%
                          底边高:10%
                B:去掉其中的的标记
                C:在model.jsp中待插入内容页的地方用标记指定
                  待插入的内容,属性名为"content" 
  
          *******
    
                D:创建一个内容页。注意一定要去掉其中的html标记与body标记。因为模板页中已经定义了     html标记。如果去掉了body标记不好排版。可以使用表格进行排版
                  一般命名为:XXXContent.jsp。比如:workerAddContent.jsp。如果有样式则要取一个
                  不同于其它的样式的别名
                E:把内容页与模板页合在一起做成一个组件
                   1)在WEB-INF下面创建一个xml配置文件。取名为tiles-defs.xml
                   2)写在如下内容:
                       
                         
            //定义多个definitions组件
               //这是模板页
                    
                         //name的值一定要与模板页中定义的一致
                         //value写上内容页
               
   
                  .....
               定义多个组件
                    
                         //name的值一定要与模板页中定义的一致
                         //value写上内容页
               
                   
          

                   3)在struts-config.xml中配置
          
           
           
                                                                //此处的名字一定要与前同创建的
                                                                //tiles-defs配置文件名一致
          

            4)在结果页中:
                     <%@ page contentType="text/html; charset=gb2312" language="java"                                  import="java.sql.*" errorPage="" %>
                     <%@ taglib uri=""  prefix="tiles" %>
                    
                                               //此处的名字一定要与在tiles-defs中定义的组件
                                               //name保持一致

阅读(565) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~