关于No result defined for action and result success

时间:2025-01-17 15:31:13

最近在做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">,这两者要相同。

       改正之后,程序终于可能正确的运行了。 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------