关于No result defined for action org.action.StrutsAction and result success
2013-10-08 10:55
579 查看
最近在做struts2的时候,老是碰见这样一个令人吐血的bug。
在网上寻了很久,查了很多资料,终于找到了自己错误的原因。实际上都是一个边边角角的错误,或是系统不兼容的错误。
我的struts.xml的配置文件
还有hello.jsp和welcome.jsp文件
最后就是StrutsAction文件
出现错误后,笔者对其中的jar包以及配置文件进行了详细的检查
问题就出现在了struts.xml这个文件上,网上说当在struts.xml文件中的action的 name属性要选择其他的字符串定义,不要占用了struts2的关键字-------“struts”。当然为什么会这样,笔者也不大了解,可能是规定吧。
可改了之后,问题依然存在,后来在网上发现了原因,就是jsp中的form表单中的代码,确认form表单的action和struts.xml中的action相对应。就是form中的action=“abc”,则struts.xml中<action
name="abc">,这两者要相同。
改正之后,程序终于可能正确的运行了。
警告: Could not find action or result No result defined for action org.action.StrutsAction and result success at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
在网上寻了很久,查了很多资料,终于找到了自己错误的原因。实际上都是一个边边角角的错误,或是系统不兼容的错误。
我的struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" extends="struts-default"> <action name="struts" class="org.action.StrutsAction"> <result name="success">/welcome.jsp</result> <result name="error">/hello.jsp</result> </action> </package> </struts>
还有hello.jsp和welcome.jsp文件
<%@ page language="java" pageEncoding="utf-8"%> <!-- 导入标签开发能力 --> <%@ taglib uri="/struts-tags" prefix="s"%> <html> <head> <title>struts 2应用</title> </head> <body> <s:form action="struts.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="#request.name"/>! </body> </html>
最后就是StrutsAction文件
package org.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class StrutsAction extends ActionSupport{ private String name; public String getName() { return name; } public String execute() throws Exception{ if(!name.equals("HelloWorld")){ Map request1=(Map)ActionContext.getContext().get("request"); request1.put("name",getName()); return SUCCESS; }else{ return ERROR; } } }
出现错误后,笔者对其中的jar包以及配置文件进行了详细的检查
问题就出现在了struts.xml这个文件上,网上说当在struts.xml文件中的action的 name属性要选择其他的字符串定义,不要占用了struts2的关键字-------“struts”。当然为什么会这样,笔者也不大了解,可能是规定吧。
可改了之后,问题依然存在,后来在网上发现了原因,就是jsp中的form表单中的代码,确认form表单的action和struts.xml中的action相对应。就是form中的action=“abc”,则struts.xml中<action
name="abc">,这两者要相同。
改正之后,程序终于可能正确的运行了。
相关文章推荐
- No result defined for action org.action.StrutsAction and result success之解决
- No result defined for action org.action.StrutsAction and result success之解决
- 关于初学者Could not find action or result :No result defined for action com.lyw.action.LoginAction and result success
- The requested resource (No result defined for action org.action.LoginAction and result success) is
- Struts:No result defined for action daiwei.struts.action.UserAction and result success
- struts---No result defined for action org.crazyit.app.action.LoginAction and result error
- struts2 关于 No result defined for action and result success 的问题
- No result defined for action org.strutsOne.web.SumAction and result
- 又遇No result defined for action org.action.AddAction and result success
- struts2 关于 No result defined for action and result success 的问题
- Struts2关于No result defined for action action.UserAction and result register_success
- 关于No result defined for Action and result success问题解决办法的总结
- No result defined for action com.zhen.user.UserInfoAction and result success
- Messages: No result defined for action cn.itcast.oa.test.TestAction and result SUCCESS
- No result defined for action action.LoginAction and result success
- No result defined for action com.tarena.action.HelloAction and result success
- No result defined for action com.lk.IndexAction and result success
- No result defined for action*.action.*Action and result success
- HTTP Status 404 - No result defined for action org.csun.ns.action.NtHomesAction and result input
- No result defined for action action.LoginAction and result success 问题解决