当前位置: 代码迷 >> J2EE >> stuts 从一个action方法到另一个action方法解决方案
  详细解决方案

stuts 从一个action方法到另一个action方法解决方案

热度:120   发布时间:2016-04-22 01:57:35.0
stuts 从一个action方法到另一个action方法
想问问,struts1与struts2如何实现这样的功能,方法越多越详细越好。

------解决方案--------------------
你可以在配置文件里配置跳转
如:
<action path="/distributor/delete" type="com.gs.web.esmcol.distributor.DistributorDeleteAction" parameter="method" >
<forward name="list" path="/distributor/list.do?method=formSubmit"/>
</action>
------解决方案--------------------
struts1的很简单啊,就像你跳转到其他页面的方法一样。
struts2的你只要在<result name="xxx" type="chain">actionname</result>

网上这类方法一大堆呢。。随便搜搜就行了,还有源码
------解决方案--------------------
s1: 1: <result name="success" type="redirect">register.action </result>
2: return new ActionForward("/myaction.do?userid="+userid + "&teamUser="+teamUser + "&doEdit="+doEdit);
3: <result name="success" type="chain" >action 名称 </result>

s2: <result name="success" type="chain" >action 名称 </result>
<result name="success" type="redirect-action" >actionName</result>


------解决方案--------------------
本人强烈建议你使用struts2,因为那样的话比struts1强太多了,这几个就够你用了
<struts>
<constant name="struts.objectFactory " value="spring"></constant>
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<package name="" extends="struts-default" >
<action name="login" class="userAction" method="saveUser">
<result name="success">welcome.jsp</result>
<result name="error">error.jsp</result>
</action>
<action name="userlogin" class="userAction" method="loginUser">
<result name="success">welcome.jsp</result>
</action>
  </package>
</struts>
------解决方案--------------------
struts2 Action之间的跳转有方式:
(1):chain,<result type="chain">...</result>,顾名思义,这种请求方式是通过拦截器ChainingInterceptor完成的,Action链在ChainingInterceptor执行完源码后,将原Action中的用户请求参数,值栈,session的数据自动赋值为目标Action,简单的说法,也就是在执行多个action过程中,参数都是保留的。
(2)redirect,<result type="redirect">...</result>,这个没什么说的,都懂的。redirect结果类型与Struts2框架默认的结果类型dispatcher相对应。 到dispatcher类型是将请求转发到指定的视图资源,而redirect类型是重定向到指定的视图资源。重定向将会丢失所有的参数、值栈和请求属性,即同时失去了Action的处理结果。而dispatcher是类型转发,将会把上述的所有数据资源转发给视图资源
(3) redirect-action,<result type="redirec-actiont">...</result>,redirect-action结果类型与redirect结果类型非常相似,都是重新生成一个新的请求,都是重新定向。 

 
------解决方案--------------------
struts2
配置文件里

<action name="bbbbbbbbbbbbbbbbb" class="" method="">
<result name="success">/xxxx.jsp</result>
</action>

<action name="aaaaaaaaaaa" class="" method="">
<result name="success">bbbbbbbbbbbbbbbbb</result>
</action>
------解决方案--------------------
struts1的没有研究过,不过struts2的方法是在struts.xml文件里面某个action里面result配置成:
<result name="xxx" type="chain"> actionname </result>
关键是chain属性,是一个action转到另外一个action的方法,其次还有
dispatcher:服务器跳转
redirect:客户端重定向
chain:action互转
  相关解决方案