`
xls
  • 浏览: 110345 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2.0的异常 The Struts dispatcher cannot be found. This is usually caused by u

阅读更多

异常信息: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 修改为: /*

或者加入 

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

如果存在多个filter时struts的filter放到最后

filter做返回登录页跳转

if(request.getSession().getAttribute("user") == null){
           //回到登录页面
           response.sendRedirect(request.getContextPath()+"/index"); 
//           request.getRequestDispatcher("/index").forward(request,response);  这个地址栏无变化
           return;
          }

      方案三:

             修改SayHello.jsp 文件,不使用 struts 的标签。

 

分享到:
评论

相关推荐

    Struts2.0学习Struts2.0文档

    &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher &lt;filter-name&gt;struts2 &lt;url-pattern&gt;/* ``` **步骤5:创建`struts.xml` 配置文件** - 右键点击项目,选择`New &gt; Other`。 - 选择`File`...

    Struts2.0的api

    Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...

    struts2.0入门案例

    Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Jakarta项目下的一个开源产品,主要用于构建MVC(Model-View-Controller)模式的应用程序。本入门案例将带你逐步了解如何使用Struts2.0来创建...

    Struts2.0学习系列 以及 Struts2.0安装包

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并...

    struts2.0环境配置

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter &lt;filter-name&gt;struts2 &lt;url-pattern&gt;/* ``` 接下来,创建一个Action类,这个类需要继承自`...

    struts2.0所有jar包

    Struts2.0是Java Web开发中非常流行的一个MVC框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,为开发者提供了强大的功能和灵活的架构。这个压缩包包含了Struts2.0框架运行所需的所有jar包,使得...

    Struts 2.0全攻略之Struts 2.0参考手册

    Struts 2.0预定义了一些常见结果类型,如`dispatcher`(用于在同一个请求范围内跳转)、`redirect`(浏览器级别的重定向)等。 4. **配置文件** Struts 2.0的配置信息可以分布在多个XML文件中,如struts.xml、...

    struts2.0源代码

    Struts2.0是Apache软件基金会的一个开源框架,主要用于构建基于Java EE的Web应用程序。它在原有的Struts1.x的基础上进行了重大改进,引入了更多现代Web开发的最佳实践和设计模式,提高了开发效率和代码可维护性。这...

    Struts2.0中文教程

    7. **国际化与异常处理**:讲解如何实现多语言支持,以及Struts2.0的内置异常处理机制,包括全局异常映射和自定义异常处理。 8. **Tiles框架集成**:介绍如何结合Tiles框架来创建复杂的布局和模板,实现动态页面...

    Struts2.0 入门学习资料

    Struts2.0是Java Web开发中的一个强大框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。Struts2.0的出现是对早期Struts1.x版本的重大升级,引入了...

    struts2.0基础和入门

    8. **异常处理**:Struts2.0提供了一套完整的异常处理机制,包括全局异常处理和局部异常处理,通过配置可以优雅地处理程序中的异常情况。 9. **表单验证**:Struts2.0提供了强大的表单验证功能,可以通过注解或XML...

    struts2.0中文帮助手册

    7. **异常处理**:Struts2.0的异常处理机制,包括全局异常处理和Action级别的异常处理。 8. **插件系统**:Struts2.0支持插件扩展,如Freemarker和Velocity模板引擎,以及Ajax支持等。 9. **最佳实践与性能优化**...

    Struts2.0框架技术详解

    ### Struts2.0框架技术详解 #### 一、MVC思想 **1.1 Model I 模式和 Model II 模式** ##### 1.1.1 Model I 模式 在Model I模式下,整个Web应用几乎全部由JSP页面组成。JSP页面不仅接收处理客户端请求,还直接...

    STRUTS2.0学习资料

    在 `web.xml` 文件中,我们定义了一个名为 `struts2` 的过滤器,过滤器类为 `org.apache.struts2.dispatcher.FilterDispatcher`,并映射所有 URL 到这个过滤器,以便 Struts 2.0 能够处理所有的 HTTP 请求。`struts....

    Struts2.0 基本的启动项目

    3. **src/main/webapp/WEB-INF** - 这里包含Web应用的配置文件,如web.xml,它是Servlet容器的配置文件,用于部署Struts2的Filter(如`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`)。...

    struts2.0中文教程

    &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher &lt;filter-name&gt;struts2 &lt;url-pattern&gt;/* ``` ##### 2.3 创建struts.xml配置文件 - **定义配置文件**:在项目的`src`目录下创建`struts.xml...

    struts2.0 应用开发,基本功能全部实现

    Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建企业级Java应用的过程。这个压缩包文件可能是为了展示一个完整的Struts2.0应用实例,包括从搭建环境到实现基本功能的...

    Struts2.0培训课件

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0培训课件"包含了深入学习和理解Struts2.0框架...

    Struts2.0学习系列

    &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher &lt;filter-name&gt;struts2 &lt;url-pattern&gt;/* ``` 5. 创建`struts.xml`配置文件,这是Struts2的核心配置文件,用于定义Action、结果页面和拦截...

Global site tag (gtag.js) - Google Analytics