LookupDispatchAction使用方法

名词解释:
    LookupDispatchAction继承DispatchAction, 用于对同一个页面上的多个submit按钮进行不同的响应。其原理是,首先用MessageResource

将按钮的文本和ResKey相关联,例如button.save=保存;然后再复写getKeyMethodMap(), 将ResKey和MethodName对应起来, 例如map.put

("button.save", "save"); 其配置方法和DispatchAction是一样的,一下是详细使用说明.
    我们今天要讲的是LookupDispatchAction的例子。本例目的是第一个页面test.jsp上有一个表单,这个表单中有个submit。分别点击不同

的submit会跳转到两个不同的页面one.jsp,two.jsp。我的开发工具是Eclipse3.2.1,MyEclipse5.1,导入struts1.2。好了,我们现在开始。
步骤:
一.新建一个WEB工程,我取名为:lookupdispatchactiontest。
二.导入struts1.2,并在Base package for new classes:中修改报名,我改为:org.nanfeng.struts
三.在struts-config.xml总添加一套三合一(jsp,action,form)。并在Use case:中起名字,我起为:test。然后Create JSP form,并  

将/test.jsp前面的/form去掉。下一步
四.在Superclass:总选中:org.apache.struts.actions.LookupDispatchAction。完成。
五.再新建两个JSP页面,分别取名为one.jsp,two.jsp。
六.在testForm与one.jsp,two.jsp页面之间分别创建forward,取名为toone,totwo。
七.给struts-config.xml的testAction中添加一个新属性:parameter="action"。
八.修改test.jsp中<body>标记中的内容为:

    <html:form action="/test" method="post">
   <html:submit property="action">
     <bean:message key="toone"/>
   </html:submit><br>
   <html:submit property="action">
     <bean:message key="totwo"/>
   </html:submit>
    </html:form>

 
九.修改testAction中的内容为:
 

   public ActionForward one(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  TestForm testForm = (TestForm) form;
  return mapping.findForward("toone");
 }
 public ActionForward two(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  TestForm testForm = (TestForm) form;
  return mapping.findForward("totwo");
 }
 @Override
 protected Map getKeyMethodMap() {
  Map map = new HashMap();
  map.put("toone", "one");
  map.put("totwo", "two");
        return map;
 }

 十.修改ApplicationResources.properties中的内容为:
   toone:one
   totwo:two
十一.完成,部署到Tomcat中运行看看吧!!最好再修改一下one.jsp和two.jsp这两个页面,容易看效果。

注:
   下面给大家解释一下上面的代码:
    第八步.submit后面的property中的属性值action就是struts-config.xml中testAction里新添加的属性parameter的值,这里它相当于一个

参数名。message后面的key的值toone,totwo,表示的就是对于action的参数值。它的作用是在testAction中的getKeyMethodMap()方法中找到

对应的方法名,也就是本例中的one()和two()。另外一定不能忘记的是在getKeyMethodMap()中将页面传过来的参数和方法名关联之后必须还要

在ApplicationResources.properties中也将它们关联起来。
   第九步.one()和two()这两个方法就是原来action中的excute()方法,这里就避免如在excute()方法中做无休止的判断了。
protected Map getKeyMethodMap()方法就是将test.jsp中传过来的参数与上面两个方法名关联起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值