没有与上下文路径[/ TestStruts]关联的名称空间[/]和操作名称[Test]映射的操作-[未知位置]

【字号: 日期:2024-03-30浏览:31作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决没有与上下文路径[/ TestStruts]关联的名称空间[/]和操作名称[Test]映射的操作-[未知位置]?

因为/TestStruts是部署应用程序的上下文路径。它与包中的名称空间具有相同的路径。尝试

http://localhost:8080/TestStruts/TestStruts/test.action

当URls从struts标记渲染时,它正在尝试查找相应的动作配置。如果找不到配置,则发出警告。

解决方法

我正在NetBeans 7.2.1的struts 2.3.16上尝试我的第一个应用程序。输入URL时显示以下错误-http://localhost:8080/TestStruts/Test.action(有一个Test.jsp页面)。

WARNING: Could not find action or result: /TestStruts/Test.actionThere is no Action mapped for namespace [/] and action name [Test] associated with context path [/TestStruts]. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) 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:472) 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:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)

该Test.jsp页面:

<s:form namespace='/TestStruts' action='test'> <table border='0' class=''> <tr><td> <s:textfield name='name' label='Enter your name'/></td> </tr> <tr><td> <s:textfield name='email' label='Enter your email'/></td> </tr> <tr><td></td><td><s:submit value='Submit'/></td> </tr> </table></s:form>

动作类:

package actions;import com.opensymphony.xwork2.ActionSupport;public final class TestAction extends ActionSupport{ private static final String SUCCESS = 'success'; private String name; private String email; public String getName() {return name; } public void setName(String name) {this.name = name; } public String getEmail() {return email; } public void setEmail(String email) {this.email = email; } @Override public String execute() throws Exception {System.out.println('name = '+name);System.out.println('email = '+email);return SUCCESS; }}

该strtus.xml文件中:

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE struts PUBLIC '-//Apache Software Foundation//DTD Struts Configuration 2.0//EN' 'http://struts.apache.org/dtds/struts-2.0.dtd'><struts> <constant name='struts.enable.DynamicMethodInvocation' value='false' /> <constant name='struts.devMode' value='true' /> <constant name='struts.custom.i18n.resources' value='myapp' /> <package name='test' namespace='/TestStruts' extends='struts-default'><action name='test' method='execute'> <result name='success'>/Test.jsp</result></action> </package></struts>

该web.xml文件中:

<?xml version='1.0' encoding='UTF-8'?><web-app version='3.0' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'> <context-param><param-name>contextConfigLocation</param-name><param-value> /WEB-INF/applicationContext.xml</param-value> </context-param> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern> </filter-mapping> <session-config><session-timeout> 30</session-timeout> </session-config> <welcome-file-list><welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>

除了Spring的jar文件外,我还添加了以下jar文件到类路径中。

commons-beanutils-1.8.0.jarcommons-chain-1.2.jarcommons-collections-3.1.jarcommons-digester-2.0.jarcommons-fileupload-1.3.jarcommons-io-2.2.jarcommons-lang3-3.1.jarcommons-lang-2.4.jarcommons-logging-1.1.3.jarcommons-logging-api-1.1.jarcommons-validator-1.3.1.jarfreemarker-2.3.19.jarjavassist-3.11.0.GA.jarognl-3.0.6.jarstruts2-core-2.3.16.jarstruts2-spring-plugin-2.3.16.jarxwork-core-2.3.16.jar

当URL .jsp从from更改为.actionlike时http://localhost:8080/TestStruts/Test.jsp,它显示以下警告。

Dec 22,2013 9:00:44 PM org.apache.struts2.components.ServletUrlRenderer warnWARNING: No configuration found for the specified action: ’test’ in namespace: ’/TestStruts’. Form action defaulting to ’action’ attribute’s literal value.Dec 22,2013 9:00:45 PM org.apache.struts2.components.ServletUrlRenderer warnWARNING: No configuration found for the specified action: ’test’ in namespace: ’/TestStruts’. Form action defaulting to ’action’ attribute’s literal value.

我想念什么?

相关文章: