当前位置: 代码迷 >> J2EE >> 【100分】Action里面明明定义了result,但是报错说找不到result?该怎么处理
  详细解决方案

【100分】Action里面明明定义了result,但是报错说找不到result?该怎么处理

热度:46   发布时间:2016-04-22 01:59:07.0
【100分】Action里面明明定义了result,但是报错说找不到result?
错误提示:No result defined for action action.LoginAction and result input
struts.xml如下:
XML code
<action name="login" class="action.LoginAction" method="login">                <result name="input">/login.jsp</result>                <result name="error">/error.jsp</result>                <result name="success">/welcome.jsp</result>                    </action>

java代码:
Java code
public String login() {        BusinessService service = new BusinessService();        User user = service.login(getId(), getPassword());        System.out.println(user.getId());        //登录成功        if(user!=null){            ActionContext.getContext().getSession().put("user", id);            System.out.println("登录成功");            return SUCCESS;        }        return ERROR;    }

程序已经能走进LoginAction里面的login函数,也已经进入返回success的代码块,但是出错,提示找不到result


------解决方案--------------------
Java code
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <base href="<%=basePath%>">
------解决方案--------------------
<result name="input">/login.jsp</result>
删除试下,你这个结果
 if(null!=user){
ActionContext.getContext().getSession().put("user", id);
System.out.println("登录成功");
return SUCCESS;
}
else{ return ERROR;
}
return INPUT;
好久不用,不知道是不是这问题
------解决方案--------------------
welcome.jsp放在哪个文件目录下?
------解决方案--------------------
你在每个result 里边加一个type="redirect" 即:<result name="success" type="redirect"> 然后看看跳转时候的地址是什么?记得改了xml要重启Tomcat,如果还不行,可以把Return换一个值,可以Return ‘s1’ 然把result的name也换了。。。
------解决方案--------------------
我晓得有种情况会出现这种错误,就是你的页面form里的input的name和action里面的属性名或类型不一致。
比如你这里,如果action里有id和password属性,如果你的页面上是user.id和user.password或者是Id和Password,那么就会出现找不到result。如果你页面上输入的id为字符串,但你action中的id为int,那么也会出现找不到result。
  相关解决方案