日期:2014-05-18  浏览次数:20738 次

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.
------解决方案--------------------