Struts常用action作用和用法.doc_第1页
Struts常用action作用和用法.doc_第2页
Struts常用action作用和用法.doc_第3页
Struts常用action作用和用法.doc_第4页
Struts常用action作用和用法.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Struts常用action作用和用法Struts中提供了几种比较通用的action,这些action使用方便灵活,配置简单。它们的继承关系如下图所示。我们完全可以使用这些现成的action,没有必要重复制造轮子。下面主要介绍我整理的这些action的作用和使用方法,适合于对struts有一定了解人员,欢迎批评指正。1、ForwardAction(1)作用用于转发请求,相当于JSP中的。MVC设计原则是控制器负责处理所有请求,然后选择适当的视图组件返回给用户。在Struts应用中,应尽量避免直接链接JSP资源,否则将脱离控制器的控制,比如:、。Struts控制器具有预处理请求功能,它能够选择正确的子应用模块来处理请求,把子应用模块的ModuleConfig和MessageResources对象存放在request范围内。使用ForwardAction,请求转发的目标Web组件就可以正常地访问ModuleConfig和MessageResources对象。(2)使用方法ActionServlet把请求转发给ForwardAction,ForwardAction再把请求转发给元素中parameter属性指定的Web组件。在struts-config.xml中配置相应的action就可以了,parameter是要转向到的url地址,如下所示。当请求“/forwardIndex”它就把控制跳转到parameter所指的“/index.jsp” 2、IncludeAction(1)作用用于包含其他Web组件,相当于JSP中的。Struts中不推荐在jsp页面中直接使用,而是采用IncludeAction类来替代。与ForwardAction一样,通过IncludeAction类来包含另一个Web组件,可以充分利用Struts控制器的预处理功能。(2)使用方法在struts-config.xml的action中配置如下: 当请求“/includeContent”它就把parameter所指的“/content/includeContent”web组件包括进来。3、DispatchAction(1)作用利用反射机制,实现了动态的方法调用。就是单个action可以提供多个处理方法,根据参数动态调用相应的处理方法,减少了action的数量,提高工作效率。使用原则是在单个action中实现一组相关的功能,比如:一个单据的新增、删除、修改等一组相关功能。(2)使用方法创建一个继承DispatchAction的类,每一个要提供的方法必须有特定的方法签名。如下所示:public class BillDispatchAction extends DispatchAction /* 单据新增*/public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception /具体业务处理/* 单据修改*/public ActionForward update(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception /具体业务处理 在struts-config.xml中,需要把parameter属性设置为“method”。具体配置如下:调用方式:http:/localhost:8080/demo/dispatchBillSubmit.do? method=add完成单据新增功能http:/localhost:8080/demo/dispatchBillSubmit.do? method=update完成单据修改功能4、LookupDispatchAction(1)作用用于一个表单中有多个提交按钮,这些按钮的名字又相同,却又想执行不同处理方法的场合。结合按钮绑定的Message资源的值与类中的getKeyMethodMap维护的映射关系来选择正确的处理方法执行。(2)使用方法在Message的资源文,增加如下资源。billForm.add=新增billForm.update=修改创建一个继承LookupDispatchAction的类,实现getKeyMethod Map方法。public class BillLookupDispatchAction extendsLookupDispatchAction /* Message资源中的值与方法名的映射关系 */protected Map getKeyMethodMap() Map map = new HashMap();map.put(billForm.add, add);map.put(billForm.update, update);return map;/* 单据新增*/public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception /具体业务处理/* 单据修改*/public ActionForward update(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception /具体业务处理.在struts-config.xml中设置parameter属性时,需要使它和标签的property属性保持一致。具体配置如下:JSP页面中调用方法如下: . . 当点击JSP页面中的“新增”,将执行BillLookupDispatchAction中的add方法,点击JSP页面中的“修改”,将执行BillLookupDispatchAction中的update方法。5、MappingDispatchAction(1)作用将struts-config.xml中多个action-mapping映射到同一个Action类的不同方法上。(2)使用方法创建一个继承MappingDispatchAction的类BillMappDisAction,其中包括如第三节BillDispatchAction类所示的函数。然后在struts-config.xml的action中做如下配置。 请求“/addBill”将执行BillMappDisAction的add方法,请求“/updateBill”将执行BillMappDisAction的update方法。6、SwitchAction(1)作用用于多模块应用,请求在不同模块之间的转发。利用SwitchAction类,Struts 会自动将应用模块的名字添加到URL。有助于大型项目和并行开发。(2)使用方法对于多模块的具体配置和应用,见附件的相关资源。这里只阐述如何利用SwitchAction进行请求转发。假设在默认模块中,有一个显示单据列表的action,现在想在bill模块中调用这个action,具体操作步骤如下。默认模块和bill模块在web.xml中配置如下,初始化参数“config/bill”配置了bill模块,“config”配置了默认模块。action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml config/bill /WEB-INF/struts-config-bill.xml 在默认模块配置文件struts-config.xml中配置如下信息。在bill模块的配置文件struts-config-bill.xml中配置如下信息。 对于请求访问SwitchAction的URL,需要提供两个参数page和prefix。page指定被请求Web组件的URI,只需指定相对于被转发后的应用模块的相对路径。prefix指定应用模块的前缀,以“/”开头,默认应用模块的前缀为空字符串。7、LocaleAction(1)作用用于设置用户的Locale,并跳转到指定页面。(2)使用方法在struts-config.xml中配置相应的action,调用时把相应的国家、语言和需转向到的页面作为参数就可以了。具体配置如下:调用方式:http:/localhost:8080/demo/switchLocale.do?country=zh&language=cn&page=/index.do设置国家为zh,语言为cn,然后跳转到index映射的页面。8、总结我们在开发过程中,尽量不要在JSP页面上写太多的逻辑和JSP代码;充分利用struts提供的action、form和tags;不要把视图和控制器缴在一起;建议多使用DispatchActions、LookUpDispatchActions和MappingDispatchAction;如果使用多模块开发,则需要使用SwitchAction。我们自己也可以写一些通用的action和tags。9、strut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论