问题描述
以前一直使用struts2 现在公司使用的struts1.2.7 ,在使用时 有个疑问1. struts1 中 的action 方法 是不是只能重写父类Action 的 execute() ?因为在struts2 中可以通过在struts.xml配置action的 method 属性来指定请求的action方法.而在struts1总在 struts-config.xml中,action配置好像没有method方法只有parameter属性, 如果不能配置的话 每个action类只能处理一个请求, 那样是不是需要太多的Action类了 ,这与struts2相比 太麻烦了.在网上搜了一些资料,也不能确定, 希望使用struts1 的 je们能提供帮助. 问题补充:谢谢几位的关注 ,我使用继承 DispatcherAction ,并配置struts-config.xml parameter="mdName", 发现当在Action类中定义 execute(...) 方法时, 当请求mdName方法时,仍执行execute()方法,而不是mdName(..),当去掉execute()方法,可以正确执行 mdName()方法.也就是说struts1,默认对请求执行execute()方法.
解决方案
记得是用DispatchAction,访问时带method=方法名即可
解决方案二:
你可以继承DispatchActon类,这样就可以使用一个Action来处理多个请求了不过要在struts.xml类配置一下。在<action ..... parameter="method">在请求的时候如: xxx.do改为xxx.do?method=方法名即可
解决方案三:
继承DispatchAction,里面写控制方法,请求时加参数和控制方法名称一样就ok了