在struts2中无法识别过滤器标记

时间:2014-03-24 20:01:43

标签: java eclipse struts2 filter web.xml

我是struts2的新手,我正在尝试关注tutorial。我正在使用Eclipse和Tomcat服务器来运行该应用程序。

我的过滤器标签无法识别,并且未调用相应的操作文件。当我尝试运行该应用程序时

http://localhost:8080/Struts2Starter

它只是说“请求的资源不可用”..

我已经下载了相应的struts2 jar文件并将它们指向WEB-INF / lib。

我的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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Struts2Starter</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>

我的struts.xml如下所示,它位于classpath(src文件夹)

<?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>
    <package name="default" extends="struts-default">
    <action name="getTutorial" class="org.kowshik.action.TutorialAction">
     <result name="success">/success.jsp</result>
    </action>

    </package>

    </struts>

我真的不确定我错过了什么。有人可以帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

操作配置中无法识别类org.kowshik.action.TutorialAction。您应该检查与操作类对应的包的名称。

您已从网络内容的根目录启动了应用程序。这意味着如果您的根文件夹有index.jsp,那么无论struts是否在filter-mapping中对其进行配置,它都将被Web服务器使用。此文件内容中最有用的部分是重定向到功能齐全的struts操作。例如

<% response.sendRedirect("getTutorial.action"); %>

如果您不小心将常规插件添加到struts.xml文件夹,请将此常量添加到WEB-INF/lib

<constant name="struts.convention.action.disableScanning" value="true" />