首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-01-02 
struts2 老是向 nameinput 的result跳转怎么设置都没用,jsp 页面提交之后,它总是去找一个 result name

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.
[解决办法]

Java code
public String doRegister() throws Exception{        System.out.println("adc"); return "abc";    }看有沒有輸出   要不你設置個断点你DEBUG下   return  的是你 STRUTS.XML  ACTION里的 RESULT看是不是其他验证的错误   默认是就转向 INPUT 的
[解决办法]
我的qq:75425364,帮你解决
[解决办法]
<include file="struts-default.xml" />
为什么还要引入这个?????
[解决办法]
我觉得你应该去掉 <include file="struts-default.xml" />试试,既然你已经继承了,为什么还要引入?

[解决办法]
如果提交了还没有进指定的方法,那说明是数据验证不通过
[解决办法]
struts配置是没有问题,既然你设置了name="SUCCESS",那么你在action里面的返回类型return就必须是success。你在return前面打印下字符串就行了
[解决办法]
探讨

<include file="struts-default.xml" />
为什么还要引入这个?????

[解决办法]
你的struts.xml里面没<result name="register_ok"></result> = =
[解决办法]
探讨
return "abc";
应该跟<result name="abc">对应吧

一般找不到。。或出错就会直接找input画面。。。

[解决办法]
Java code
<result name="input">/usr/register1.jsp</result>            <result name="success">/usr/register1.jsp</result>
[解决办法]
探讨

楼上几位达人,我的 doRegister 返回的是"abc",并且在 struts.xml 的 action 中并没有 name="abc" 的 result 子节,按理说应该会出错,但是它不报错,而是直接跳转到了 name="input" 的 result 中去了

[解决办法]
肯定是有问题所以才会跳转INPUT的,把异常发上来看一下
[解决办法]
看来楼主还没明白

这个就相当于 switch case 里面的 default:一样
[解决办法]
你的<result name="input">/usr/register1.jsp</result>
<result name="success">/usr/register1.jsp</result>
都是register1.jsp一个页面你怎么区别是input还是success呢?

[解决办法]
探讨

你的<result name="input">/usr/register1.jsp</result>
<result name="success">/usr/register1.jsp</result>
都是register1.jsp一个页面你怎么区别是input还是success呢?

[解决办法]
探讨
是否做了验证 ? 验证不通过 ,则跳转到 了 input 的页面

热点排行