关于struts2里面的chain:chain的目标方法没有被调用

_Wanghui_ 2008-10-23 11:27:08
这是个验证登录的功能,login action生成表达式,validate action进行验证

<!-- 这个action调用Login class的genExp方法,返回input,转到/home/login.jsp -->
<action name="login" class="csdn.Login" method="genExp">
<result name="input">/home/login.jsp</result>
</action>

<!-- login.jsp提交表单到validate.action,当发生错误的时候,return fail -->
<!-- 根据下面的配置,返回类型为fail时,链到login这个action -->
<!-- 问题在于,Login的genExp方法没有执行到,而直接跳到了/home/login.jsp页面 -->

<action name="validate" class="csdn.Login">
<result name="input">/home/login.jsp</result>
<result name="fail" type="chain">login</result>
<result type="redirect-action">welcome</result>
</action>


我在Login的genExp和execute都打了断点,都没能进去

我查了下手册
chain有个属性,method - used to specify another method on target action to be invoked. If null, this defaults to execute method

上面用chain的目的是,validate如果失败,在execute方法里添加错误信息,addFieldError(),然后chain到login,重新产生表达式,并显示上一次的错误
...全文
578 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Wanghui_ 2008-10-23
  • 打赏
  • 举报
回复
哦~
我试了下result name是success的情况,这个时候就可以chain的到目标action的XX方法
这样太奇怪了吧
如果不是success就不行吗
_Wanghui_ 2008-10-23
  • 打赏
  • 举报
回复

<result name="fail" type="chain">
<param name="actionName">login</param>
<param name="method">genExpression</param>
</result>


这样试过也是不行

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧