配置Struts2相关问题

来源:互联网 发布:idc销售网站php源码 编辑:程序博客网 时间:2024/04/30 16:22
月 20, 2017 1:29:29 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
严重: Could not find action or result
/computerRoom/
There is no Action mapped for namespace [/] and action name [] associated with context path [/computerRoom]. - [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:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:534)
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:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

出现这样的问题的解决办法:

1.确保struts.xml配置文件名书写正确、

2.确保struts的配置文件是在src路径下

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9"
version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


    <display-name>ComputerRoom</display-name>


    <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>


    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>


</web-app>


struts2的配置文件

<?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>


    <!-- 取消默认的表格布局 -->
    <constant name="struts.ui.theme" value="simple"/>
    <!-- 设置字符集  -->
    <constant name="struts.i18n.encoding" value="utf-8"/>
    <!-- 设置struts2的对象工厂为spring
    <constant name="struts.objectFactory" value="spring" />
     -->
    <constant name="struts.devMode" value="true" />
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--
<package name="default" namespace="/" extends="struts-default">
通配符方式的登录Action定义 
        <action name="*LoginAction" class="loginActionBean" method="{1}"> 
            <result name="SUCCESS">WebContent/mainPage.jsp</result>
            <result name="ERROR">WebContent/index.jsp</result>
        </action> 
    
</package>
 -->  
<package name="default" namespace="/" extends="struts-default">
        <action name="success" class="com.computerRoom.action.TestAction">
            <result name="success">index.jsp</result>
        </action>
    </package>
</struts>    

解决的办法:之前index.jsp页面的路径在WebContent/WebInf路径下,我将index.jsp页面移动到WebContent路径下,这样就可以了。


总结:出现There is no Action mapped for namespace [/] and action name [] associated with context path [/computerRoom]. - [unknown location]的错误,主要是strut2.xml的配置有问题,检查struts的配置文件是否有问题,如果修改之后还是还是有问题

就查看index.jsp的文件路径是否正确

0 0
原创粉丝点击