Struts学习笔记之Action.doc_第1页
Struts学习笔记之Action.doc_第2页
Struts学习笔记之Action.doc_第3页
Struts学习笔记之Action.doc_第4页
Struts学习笔记之Action.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

Struts 学习笔记之Action 下面是Struts中的一些常用Action如DispatchAction/LookupDispatchAction/MappingDispatchAction/ForwardAction/IncludeAction的总结 1 DispatchAction extends BaseAction 一般的Action如,在这里UserAction只需要继承父类(extends Action类),然后重写父类的execute方法,在execute中实现具体的控制转向。 对于同一个formbean上进行的新增、修改、删除等,我们需要分发不同的Action,这里有两种做法。 一种是通过在execute方法中if判断进行不同的转向: UserAction 类的execute方法中 String method = request.getParameter(method); if (method.equals(create) return mapping.findForward(createUser); if (method.equals(save) return mapping.findForward(saveUser); struts-config.xml 中: 可以在页面中定义一个隐藏变量来指明相应的操作 / 这里最好不要使用 / 因为这种写法需要在formbean中定义相应的property,我们可以采用普通隐藏域 然后定义一个javascript函数,我们可以在通过点击提交按钮的时候,在函数中修改它的值。 function set(operation) with (document.forms0) method.value = operation; 点击提交按钮时,通过set方法设置提交的method属性值: CREATE SAVE 第二就是使UserAction继承DispatchAction,不需要重写execute方法: public ActionForward create(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception / 進行一些create的逻辑 / return mapping.findForward(createUser); public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception / 進行一些save的逻辑 / return mapping.findForward(saveUser); DispatchAction 在配置上和一般Action稍有不同,就是要在Action配置中多一个parametr属性,这个属性可以指定执行DispatchAction中对应的方法。 struts-config.xml 中: 我们在这里指定了parameter的值为method,则页面提交时我们必须指定提交时action的method参数来确定去我们想要调用哪个Action方法。 function submitForm(operation) with (document.forms0) action = action + ?method = + operation; submit(); 点击提交按钮时,通过submitForm方法设置提交时action的method参数: CREATE SAVE 2 LookupDispatchAction extends DispatchAction LookupDispatchAction 继承DispatchAction, 在上面的 中对于同一个页面上的多个submit按钮,不需要那么多复杂的js函数来指定提交时action的method参数,即上面的submitForm(operation)方法可以省去,LookupDispatchAction其用法为: 用MessageResource将按钮的文本和ResKey相关联,例如button.save=保存; 中用LookupDispatchAction代替就是: 在Action配置中多一个parametr属性,属性值与submit按钮的property属性值相同,这个属性可以指定执行LookupDispatchAction中对应的方法。 struts-config.xml 中: 使UserAction继承LookupDispatchAction,重写getKeyMethodMap()方法, 将ResKey和MethodName对应起来, 如下: protected Map getKeyMethodMap() Map map = new HashMap(); map.put(button.create, create); map.put(button.save, save); return map; 注: DispatchAction 类使用请求参数的值确定调用哪种方法,而LookupDispatchAction类利用请求参数值,反向查询资源绑定,并将它与类中的一种方法匹配,实际上这两种方法有异曲同工之处。 3 MappingDispatchAction extends DispatchAction DispatchAction 指定了parameter的值为method,则页面提交时我们必须指定提交时action的method参数来确定去我们想要调用哪个Action方法,而MappingDispatchAction直接通过struts-config.xml将多个action-mapping映射到同一个Action类的不同方法: 然后UserAction继承MappingDispatchAction即可: public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception 注: 查看MappingDispatchAction的源码: protected String getMethodName(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, String parameter) throws Exception / Return the unresolved mapping parameter. return parameter; 可以看到它调用的方法是直接返回struts-config.xml中parameter的值。 4 ForwardAction extends BaseAction 相当于功能,不需要配置formbean和act

温馨提示

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

最新文档

评论

0/150

提交评论