当前位置: 代码迷 >> Java Web开发 >> struts2 老是向 name="input" 的result跳转,该如何解决
  详细解决方案

struts2 老是向 name="input" 的result跳转,该如何解决

热度:234   发布时间:2016-04-17 17:22:17.0
struts2 老是向 name="input" 的result跳转
怎么设置都没用,jsp 页面提交之后,它总是去找一个 <result name="input"> 进行跳转

我在 action 类的执行方法中什么事都没做,直接返回一个自己指定的字符串 "register_ok",但是 action 还是向 name="input" 的 result 跳转。并且如果在 struts.xml 中删除 name="input" 的 result,则程序运行时报错,提示没有配置 name="input" 的节点



下面是 action 类的代码

Java code
import com.opensymphony.xwork2.*;public class RegisterAction extends ActionSupport{    private String username;    private String password1;    private String password2;    public String doRegister() throws Exception{        return "abc";    }        public String getUsername() {        return username;    }    public void setUsername(String username) {    this.username = username;    }    public String getPassword1() {    return password1;    }    public void setPassword1(String password1) {    this.password1 = password1;    }    public String getPassword2() {    return password2;    }    public void setPassword2(String password2) {    this.password2 = password2;    }}


下面是 struts.xml 

XML code
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <include file="struts-default.xml" />    <constant name="struts.ognl.allowStaticMethodAccess" value="true" />    <package name="user-manage" namespace="/usr" extends="struts-default">        <action name="register" class="com.csjl.infopub.struts2.usr.RegisterAction" method="doRegister">            <result name="input">/usr/register1.jsp</result>            <result name="success">/usr/register1.jsp</result>        </action>    </package>    <!-- Add packages here --></struts>




------解决方案--------------------
return "abc";
应该跟<result name="abc">对应吧

一般找不到。。或出错就会直接找input画面。。。
------解决方案--------------------
找不到‘abc’后,默认为'input
'
------解决方案--------------------
配置貌似没错呀。。。
------解决方案--------------------
直接返回一个自己指定的字符串 "register_ok",你应该把<result name="success">中的success改为register_ok
------解决方案--------------------
- -!

你的方法返回的abc,而在配置文件中没有!
------解决方案--------------------
- -!
顶楼上的
------解决方案--------------------
先填上abc吧 没验证要不就别继承ActionSupport了
------解决方案--------------------
仔细检查你的表单提交的元素类型是否符合条件
------解决方案--------------------
是否做了验证 ? 验证不通过 ,则跳转到 了 input 的页面
------解决方案--------------------
doRegister() 返回的是“abc”而你struts.xml文件中没有配置<result name="abc"> </result>,系统默认就找input.
------解决方案--------------------
  相关解决方案