读书人

struts错误There is no Action 地图pe

发布时间: 2013-09-24 11:29:02 作者: rapoo

struts异常There is no Action mapped for namespace [/] and action name [] ......
我用的maven项目管理,这个问题是用jetty服务器出的,tomcat可以正常运行跑通。之前tomcat也出现这个问题,后来不知道不知不觉也就没这问题了,昨天换jetty容器了,问题重现,我估计还是当初配置的问题,或是什么命名空间的原因,找了半天没找到,所以求助大家。

下面是我的web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.bjhit.eranges.utils.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
<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>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>


</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/security/login.jsp</welcome-file>
</welcome-file-list>
</web-app>



然后是我的struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.configuration.xml.reload" value="true"/>

<package name="str" namespace="" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor" class="com.bjhit.eranges.filter.LoginInterceptor">
</interceptor>
<interceptor-stack name="myDefaultInterceptorStack">
<interceptor-ref name="loginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="myDefaultInterceptorStack"></default-interceptor-ref>
<global-results>
<result name="login">/loginManage</result>


<result name="success">/frame/main.jsp</result>
</global-results>

<action name="loginfilter" class="com.bjhit.eranges.filter.LoginInterceptor">
<result name="login">/loginManage</result>
</action>
<action name="loginManage" class="com.bjhit.eranges.actions.LoginManageAction">
<result type="redirect">/frame/main.jsp</result>
<result name="error">/security/login.jsp</result>
</action>

</package>
</struts>



我调用action的时候就会出问题,具体错误如下
2013-4-28 16:35:22 com.opensymphony.xwork2.util.logging.commons.CommonsLogger er
ror
严重: Could not find action or result
/
There is no Action mapped for namespace [/] and action name [] associated with c
ontext path []. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:1
85)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsAct
ionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultA
ctionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:534)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOper
ations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilt
er(StrutsPrepareAndExecuteFilter.java:91)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler
.java:1419)
at com.bjhit.eranges.utils.SetCharacterEncodingFilter.doFilter(SetCharacterEnco
dingFilter.java:39)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler
.java:1419)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137
)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)


at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java
:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java
:1075)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:
193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:
1009)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135
)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHand
lerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.
java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:1
16)
at org.eclipse.jetty.server.Server.handle(Server.java:368)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpCo
nnection.java:489)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpC
onnection.java:942)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplet
e(AbstractHttpConnection.java:1004)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java
:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.
java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.j
ava:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:
608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:5
43)
at java.lang.Thread.run(Thread.java:662)


求助如何解决这个问题,配置出错了没有?还是什么其他原因? 异常 Struts 命名空间 namespace action
[解决办法]



<filter-mapping>
<filter-name>struts2</filter-name>


<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


重复配置,保留/*那个就可以了,同时请楼主贴出调用的代码啊
[解决办法]
action的路径错误,前后命名空间namespace的值不一致
[解决办法]
试下这样可以不<package name="str" namespace="/" extends="struts-default">
[解决办法]
引用:
试下这样可以不<package name="str" namespace="/" extends="struts-default">
赞同楼上
[解决办法]
或者找到对应的的jsp页面,<form action="xxx" method="post" namespace="">这里的namespace要和<package name="str" namespace="" extends="struts-default"> 一致
[解决办法]
lz要明白你测试时请求的url是什么?同时你在web.xml中配置的url映射/*,会拦截所有的请求,包括静态资源访问。所以就会报action name找不到这类的错误
你是在点击登陆报的错误呢,还是后台方法已经运行了,但是在界面渲染的时候报的错误呢

还有你的jsp代码最好也晒晒
[解决办法]
Could not find action or result
/
这里请求的action的name竟然是/
你发一下你的jsp页面代码。
form表单肯定填的有问题

读书人网 >Java Web开发

热点推荐