当前位置: 代码迷 >> Java Web开发 >> struts标签表单提交直接跳转到list页面解决方案
  详细解决方案

struts标签表单提交直接跳转到list页面解决方案

热度:22   发布时间:2016-04-16 22:26:14.0
struts标签表单提交直接跳转到list页面
表单页面
<s:form id="form"  method="post" action="#ud.name.equals('')?user!add:user!upd">
     <input type="hidden" id="upd" value="${ud.name}"/>
     <table border="1">
     <tr align="center">
     <td width="50%" >用户名:</td>
     <td width="50%"><input type="text" name="userdo.name" value="${ud.name}"/></td>
     </tr>
     <tr align="center">
     <td>密码:</td>
     <td><input type="text" name="userdo.pwd" value="${ud.pwd}"/></td>
     </tr>
     <tr align="center">
     <td ><input type="submit" value="提交" onclick="fun()" /></td>
     <td ><input type="reset" value="重置"/></td>
     </tr>
     </table>
     </s:form>

UserAction方法
public String add(){
userManager.add(userdo);
return this.sel();
}
public String del(){
userManager.del(userdo.getName());
return this.sel();
}
public String upd(){
userManager.upd(userdo);
return this.sel();
}
我知道action里的写法有问题,但是它不报错,直接跳转到了sel方法,请大神们告诉我为什么会跳转到sel方法。

------解决方案--------------------
是不是其他地方调用的 的。你单步调试看看。
------解决方案--------------------
引用:
Quote: 引用:

应该是执行了你的add或upd方法,然后跳到了sel()方法吧。


没有执行,我用debug看过了  如果不在sel方法前加断点 只在upd或者add方法前加断点,不会进入断点,而是直接跳转到list.jsp页面,也就是直接执行sel方法。

你用firebug看一下你的action是什么?你的请求到了哪个方法?估计是那的问题,不建议你那样写,很容易造成错误。还有struts每一个请求就是一个新的Action,执行完了直接返回视图层,你让你的所有action都返回统一的一个方法很是多此一举而且非常怪异的写法,你要执行通用功能就写在拦截器里,用框架就按人家的要求和格式来做,不要写那些花里胡哨的东西,没什么用还容易出错。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

应该是执行了你的add或upd方法,然后跳到了sel()方法吧。


没有执行,我用debug看过了  如果不在sel方法前加断点 只在upd或者add方法前加断点,不会进入断点,而是直接跳转到list.jsp页面,也就是直接执行sel方法。

你用firebug看一下你的action是什么?你的请求到了哪个方法?估计是那的问题,不建议你那样写,很容易造成错误。还有struts每一个请求就是一个新的Action,执行完了直接返回视图层,你让你的所有action都返回统一的一个方法很是多此一举而且非常怪异的写法,你要执行通用功能就写在拦截器里,用框架就按人家的要求和格式来做,不要写那些花里胡哨的东西,没什么用还容易出错。
+1
直接把form提交的aciton后面参数删了,让它们跳转到不同的action里,在struts。xml里控制跳转到哪个方法里比较清晰吧~
  相关解决方案