最近在做struts2的时候,老是碰见这样一个令人吐血的bug。
警告: Could not find action or result
No result defined for action and result success
at .(:375)
at .(:277)
at .(:176)
at .(:98)
at .(:248)
at .(:263)
at .(:68)
at .(:98)
at .(:248)
at .(:133)
at .(:248)
at .(:207)
at .(:98)
at .(:248)
at .(:207)
at .(:98)
at .(:248)
at .(:190)
at .(:248)
at .(:75)
at .(:248)
at .(:94)
at .(:248)
at .(:243)
at .(:248)
at .(:100)
at .(:248)
at .(:141)
at .(:248)
at .(:267)
at .(:248)
at .(:142)
at .(:248)
at .(:166)
at .(:98)
at .(:248)
at ..(:176)
at .(:248)
at .(:164)
at .(:248)
at .(:190)
at .(:248)
at .(:187)
at .(:248)
at .(:52)
at .(:485)
at .(:77)
at .(:91)
at (:243)
at (:210)
at (:222)
at (:123)
at (:502)
at (:171)
at (:99)
at (:953)
at (:118)
at (:408)
at .http11.(:1023)
at $(:589)
at $(:1852)
at $(:886)
at $(:908)
at (:619)
在网上寻了很久,查了很多资料,终于找到了自己错误的原因。实际上都是一个边边角角的错误,或是系统不兼容的错误。
我的的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "/dtds/struts-2.">
<struts>
<package name="default" extends="struts-default">
<action name="struts" class="">
<result name="success">/</result>
<result name="error">/</result>
</action>
</package>
</struts>
还有和文件
<%@ page language="java" pageEncoding="utf-8"%>
<!-- 导入标签开发能力 -->
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>struts 2应用</title>
</head>
<body>
<s:form action="" method="post">
<s:textfield name="name" label="请输入姓名"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>struts 2应用</title>
</head>
<body>
hello <s:property value="#"/>!
</body>
</html>
最后就是StrutsAction文件
package ;
import ;
import .;
import .;
public class StrutsAction extends ActionSupport{
private String name;
public String getName() {
return name;
}
public String execute() throws Exception{
if(!("HelloWorld")){
Map request1=(Map)().get("request");
("name",getName());
return SUCCESS;
}else{
return ERROR;
}
}
}
出现错误后,笔者对其中的jar包以及配置文件进行了详细的检查
问题就出现在了这个文件上,网上说当在文件中的action的 name属性要选择其他的字符串定义,不要占用了struts2的关键字-------“struts”。当然为什么会这样,笔者也不大了解,可能是规定吧。
可改了之后,问题依然存在,后来在网上发现了原因,就是jsp中的form表单中的代码,确认form表单的action和中的action相对应。就是form中的action=“abc”,则中<action name="abc">,这两者要相同。
改正之后,程序终于可能正确的运行了。
--------------------------------------------------------------------------------------------------------------------------------------------------------------