异常信息:The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag.
环境:tomcat5.5.0
struts.xml信息
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts.xml 信息:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="ygn.action" extends="struts-default">
<action name="HelloWorld" class="ygn.action.HelloWorld">
<result>HelloWorld.jsp</result>
</action>
</package>
</struts>
SayHello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Say Hello</title>
</head>
<body>
<h3>Say "Hello" to :</h3>
<s:form action="HelloWorld">
Name:<s:textfield name="name"/>
<s:submit/>
</s:form>
</body>
</html>
异常分析:以上的配置及文件中,如果采用 http://ip:port/SayHello.jsp,那么会出现前面所提到的异常。如果采用http://ip:port/SayHello.action 进行访问,那么正常。
原因:如果想要在jsp文件中,采用 struts的tag,那么必须通过web.xml所配置的过滤器访问文件,否则会有异常,即 之前所出现的异常。
解决方案:
方案一:
采用 http://ip:port/SayHello.action 访问
方案二:
将web.xml 的过滤器,从 *.action 修改为: /*
方案三:
修改SayHello.jsp 文件,不使用 struts 的标签。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yugenning/archive/2008/10/24/3137339.aspx
分享到:
相关推荐
The org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation for a multipart request (file upload) 专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart....
总的来说,`org.apache.struts2.dispatcher.FilterDispatcher`是Struts 2框架中一个至关重要的组件,负责请求的分发和Action的调用,对于理解和掌握Struts 2的运行机制具有重要意义。开发者需要熟悉其工作原理和配置...
org.apache.struts2.dispatcher.ng, org.apache.struts2.dispatcher.ng.filter, org.apache.struts2.dispatcher.ng.listener, org.apache.struts2.dispatcher.ng.servlet, org.apache.struts2.impl, org.apache....
at org.apache.struts2.dispatcher.Dispatcher.cleanUpRequest(Dispatcher.java:837) at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupRequest(PrepareOperations.java:103) at org.apache.struts2....
struts2官网2.3版本的最后一个版本,能够...注意此版本的dispatcher是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。详见https://struts.apache.org/docs/struts-23-to-25-migration.html。
org.apache.struts2.dispatcher.ng This package contains a reimagining of the traditional Struts filter dispatchers. org.apache.struts2.dispatcher.ng.filter org.apache.struts2.dispatcher.ng.listener ...
2. **org/apache/struts2**:Struts2的代码库,包含了与Struts2特定功能相关的类和接口,如Dispatcher、ActionContext、Tiles插件等。 3. **src/test**:测试代码,可以帮助我们了解如何测试Struts2的功能和组件。 4...
Struts 2内置了多种结果类型,如`dispatcher`(用于转发到JSP页面)、`stream`(用于下载文件)等。开发者可以根据需求自定义结果类型。 5. **配置文件** Struts 2的配置文件主要包括`struts.xml`,它是整个应用...
<servlet-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <servlet-name>struts2 <url-pattern>/* <filter-name>contextLoaderFilter <filter-class>org.springframework....
Struts 2是Java平台上的一个开源MVC框架,它为构建基于J2EE的Web应用程序提供了强大的支持。Struts 2是Struts 1的后续版本,它结合了Struts 1和WebWork框架的优点,提供了一种更加灵活、功能更加强大的框架体系。 ...
9. struts.dispatcher.parametersWorkaround:这是一个布尔值,用于确定是否使用Servlet请求参数工作区(PARAMETERSWORKAROUND),该工作区用于某些版本的WebLogic。 10. struts.enable.DynamicMethodInvocation:...
Struts 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web框架,它使得开发者能够更方便地构建动态、数据驱动的Web应用程序。`struts-config.xml`是Struts框架的核心配置文件,它定义了应用的各个组件及其...
Struts2.5.2是Apache Struts框架的一个版本,它是基于MVC设计模式的Java Web应用程序开发框架。本文将详细介绍Struts2.5.2的配置过程以及可能遇到的问题和解决方案。 首先,配置Struts2.5.2需要从官方站点下载所需...
2. 在web.xml文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。 3. 创建Struts配置文件(struts.xml),定义Action、结果类型以及可能的拦截器链。 4. 编写...
官网对struts2的2.5版本做了一些修改,包括dispatcher(org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter)等,详见https://struts.apache.org/docs/struts-23-to-25-migration.html。
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` 自从Struts2.1.3版本之后,原来的`FilterDispatcher`类已经被标记为过时...
1. **核心库**:如`struts-core.jar`,它提供了Struts框架的核心功能,包括Action、Form、Dispatcher等。 2. **标签库**:如`struts-bean.jar`、`struts-html.jar`和`struts-tiles.jar`,它们分别提供Bean标签、HTML...
12. `struts.mapper.class`:定义HTTP请求映射到Action的映射器,默认是`org.apache.struts2.dispatcher.mapper.DefaultActionMapper`,负责根据请求的URL与Action的`name`属性进行匹配。 13. `struts.action....
5. **结果类型**:Struts 2支持多种结果类型,如dispatcher(默认,用于转发到JSP)、stream(用于处理文件下载)和redirect(用于重定向URL)。 6. **OGNL(Object-Graph Navigation Language)**:Struts 2使用...
11. `struts.mapper.class`: 设定请求映射到Action的映射器,默认映射器是`org.apache.struts2.dispatcher.mapper.ActionMapper`。 通过调整这些属性,开发者可以定制Struts2的行为以适应不同应用的需求。例如,...