有一个密码修改页面,action里写了save(),edit(),cancel()等方法.
其中save(),edit()对应的struts.xml配置是
<action name="modifyPwd" class="com.webapp.action.ModifyPwdAction" method="edit"> <result name="success">/pages/modifyPwd.jsp</result> </action> <action name="saveModifyPwd" class="com.webapp.action.ModifyPwdAction" method="saveTest"> <result name="success" type="redirect">feedbacks.html</result>(feedbacks.html可以正常访问) <result name="input">/pages/modifyPwd.jsp</result> <result name="cancel" type="redirect">feedbacks.html</result> </action>
action类里测试方法是
public String saveTest(){ System.out.println("*************==================="); return this.SUCCESS; }
页面代码是
<s:form name="userForm" action="modifyPwd" method="post" validate="true"> <li> <s:hidden key="user.id"/> <div> <s:password key="user.oldpassword" showPassword="true" theme="xhtml" required="true" cssClass="text large" onchange="passwordChanged(this)"/> </div> <div> <s:password name="user.password" key="user.newpassword" showPassword="true" theme="xhtml" required="true" cssClass="text large" onchange="passwordChanged(this)"/> </div> <div> <s:password key="user.confirmnewpwd" theme="xhtml" required="true" showPassword="true" cssClass="text large" onchange="passwordChanged(this)"/> </div> </li> <br> <div align="right"> <s:submit key="button.save" method="saveTest" onclick="onFormSubmit(this.form)"/> <s:submit key="button.cancel" method="cancel"/> </div> </s:form>
断点的过程中发现saveTest(),已经return success了,但就是不能正确定位到feedbacks.html
请问: 这是什么原因呢?
问题补充:
路径应该没问题的
edit()方法在success的时候可以成功定向
我把save()方法success对应的路径换成了edit()对应的路径/pages/modifyPwd.jsp 还是没反应。。。不动!
不定向,也不报错.
问题补充:
zgy_zhengGY 说的很对
我现在应用的是Appfuse框架,Action类里包括了所有的常用方法.
每个方法在struts.xml里就对应一个action配置
页面form提交时,只能提交一个action。也就是第一次进入页面需要调用的action-(modifyPwd).
那么怎么在这个页面上去调用struts.xml里配置的saveModifyPwd呢?
应该怎么去写
问题补充:
感谢 zgy_zhengGY
<action name="modifyPwd">
<result type="redirect-action">saveModifyPwd</result>
</action>
这种做法我刚刚尝试了,当进入modifyPwd的时候,就会报错,
过滤器仍出来的.
javax.servlet.ServletException: java.lang.NullPointerException
at net.sf.ehcache.constructs.web.filter.Filter.logThrowable(Filter.java:152)
at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.youqudian.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:74)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
我是在做一个修改密码的页面
1:请求modifyPwd进入修改密码页面了,调用了Action类中的edit方法
2:用户录入完新密码后,点击"保存"按钮,调用Action类中的save方法
这时请求的action应该为saveModifyPwd.因为在struts.xml里
saveModifyPwd在success的时候会定向到我的指定页面
现在的情况就是 Action类中的save方法执行了,我断点跟进去了,也已经return success。但就是页面没有跳转到我指定的页面,什么动作都没有。不跳转,也不报错.