分类: 系统运维
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"
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保持一致