HTTP Status 404 - No result defined for action LoginAction and result login
type Status report
message No result defined for action LoginAction and result login
description The requested resource is not available.
Apache Tomcat/7.0.53
今天努力的半天终于找到问题的原因了
配置文件中这样写:
<package name="default" extends="struts-default" >
<action name="hello" class="com.simulatecity.teststruts.LoginAction"
method="execute">
<result name="SUCCESS">/welcome.jsp</result>
<result name="LOGIN">/login.jsp</result>
</action>
</package>
execute这样写
public String execute() throws Exception {
if("123".equals(username) && "123".equals(password))//如果登录的用户名=123并且密码=123,就返回SUCCESS;否则,返回LOGIN
return SUCCESS;
else {return LOGIN;}
}
就会出现这样的问题。
后来修改了这个函数的返回值和对应的struts配置文件的对应名字,就解决了。why?
因为接口action中是这样定义的
public abstract interface Action
{
public static final String SUCCESS = "success";
public static final String NONE = "none";
public static final String ERROR = "error";
public static final String INPUT = "input";
public static final String LOGIN = "login";
public abstract String execute()
throws Exception;
}
SUCCESS的返回值是小写的,而在struts配置文件中是大写的。不匹配,就找不到返回的对应文件了。
解决办法,修改返回值或者将配置文件的大写SUCCESS改为小写的success,然后就能找到了。
浙公网安备 33010602011771号