struts-config配置文件中,actionmaping里parameter属性干什么用的?


看到在parameter="method"设了后,页面上提交了参数method=###参数后,就可以直接进入action里###方法,请问这是怎么对应起来的?
初学struts,感觉很神奇!

8 个解决方案

#1


up一下
找本struts书详细看看吧,应该有介绍的,我也不是很清楚

#2


DispatchAction就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute 被调用的方法. 例如parameter="method"而request.getParameter("method")="save",其中"save"就是 MethodName。struts的请求将根据parameter被分发到"save"或者"edit"或者什么。但是有一点,save()或者 edit()等方法的声明和execute必须一模一样。

网上拷来的

#3


<action-mappings>
<action path="/index" type="ClassA" name="mapForm" scope="request" parameter="goto">
<forward name="jspA" path="/jspA.jsp" />
<forward name="jspB" path="/jspB.jsp" />
</action>
</action-mappings>
public class ClassA extends DispatchAction {
public ActionForward method1(ActionMapping mapping, ActionForm form, ttpServletRequest request, HttpServletResponse response) throws Exception {
return mapping.findForward("jspA");
}
public ActionForward method1(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {
return mapping.findForward("jspB");
}
}
这里的配置,parameter="goto",如果第一个jsp里传来一个参数"goto"的值为method1,则执行ClassA里面的method1()方法,如果"goto"的值为method2,则执行method2()方法(参数的值要与方法名相同)。

#4


^_^ 上面写错了一个方法名(method2),呵呵

#5


内部实现的,这样做可以在一个action里面处理多个页面,从而可以避免action类的数量太多。

但是如果你的jsp页面请求的链接本身包含method参数,这样做却会出错。

#6


已经结贴了,不知道害能不能回复,小弟仍然有个疑问要确认
楼上的意见就是说再地址栏里输入http。。。。。asdf.jsp?goto=method1 或者前一个页面是用连接包含这段url,就会出错是吧
另外问一下,struts-config.xml里面定义的forward是不是只是给自己写的继承的DispatchAction类中的ActionMapping.findForward(Stirng)用的?而请求调用的方法名必须是类中写好的方法?

#7


[co
lor=#FF99CC][/color]
[code=C/C++][/cod
e]

#8


额为人werwe

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号