以前学过Spring、Struts、Hibernate的开发,今天想看看Spring、Struts、Ibatis的框架,本着从头做起的原则,下载一些相关的Jar包,开始做起。
首先,用Myeclipse建一个Web Project。然后导入必要的Jar包,由于之前下的Jar包比较新,Struts2.3的,和以前做的不太一样,导入的时候报错了。然后修改web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.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>*</url-pattern> </filter-mapping> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
然后在src目录下新建struts.xml,添加以下内容:
<?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.devMode" value="true" /> <constant name="struts.ui.theme" value="simple" /> <constant name="struts.multipart.saveDir" value="\temp" /> <constant name="struts.multipart.maxSize" value="3048576000" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <package name="index" namespace="/" extends="struts-default"> <action name="*" class="core.action.UserAction" method="index"> <result name="index">/{1}.jsp</result> </action> </package> </struts>
接着写一个测试的Action,建立core.action包,然后添加UserAction类:
package core.action; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class UserAction extends ActionSupport { public String index() { return INPUT; } }
再之后写一个JSP页面,响应index方法的请求:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>index</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> This is my JSP page. <br> </body> </html>
然后部署, 启动服务器,打开浏览器localhost:8080/项目名/index报错了。
错误如下: Dispatcher initialization failed 错误
于是搜了搜,发现现在的struts2不仅仅是那5个核心包了,还扩展了其他的包,例如Commons-fileupload,Commons-IO包等。现将我整理好的Jar包最小化打包上传,希望遇到类似问题的朋友参考参考。
这回好了,问题解决。一看控制台,出了个提示:
>>> FilterDispatcher <<< is deprecated! Please use the new filters!
一看又是版本问题导致的struts2过时了,修改web.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <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> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
原来从>=2.1.3的版本开始,FilterDispatcher被标记为过时,取而代之的是新的StrutsPrepareAndExecuteFilter。这回搞定了,没有提示错误和警告了。
相关推荐
Console 错误:Dispatcher initialization failed **问题描述**: ``` java.lang.RuntimeException: java.lang.reflect.InvocationTargetException ``` **解决方法**: 这个问题通常与缺失`javassist-3.11.0.GA....
### 徒手配置Struts2的关键知识点 #### 一、徒手配置Struts2环境时需注意的关键事项 在没有使用任何集成开发环境的情况下配置Struts2,可能会遇到各种问题,尤其是在配置过程中对于细节的把握至关重要。以下是配置...
**标题:“Eclipse配置Struts2”** 在Java Web开发中,Struts2是一个非常流行的MVC(模型-视图-控制器)框架,它提供了一种结构化的方式来组织应用程序,提高了开发效率。Eclipse作为Java开发的主要IDE,配置Struts...
本文将详细介绍Struts2.5.2的配置过程以及可能遇到的问题和解决方案。 首先,配置Struts2.5.2需要从官方站点下载所需的jar包。在http://struts.apache.org/download.cgi#struts252上,你可以找到两个选项:1是指...
总的来说,`org.apache.struts2.dispatcher.FilterDispatcher`是Struts 2框架中一个至关重要的组件,负责请求的分发和Action的调用,对于理解和掌握Struts 2的运行机制具有重要意义。开发者需要熟悉其工作原理和配置...
记住,配置过程中可能会遇到各种问题,比如版本兼容性、缺少依赖、配置错误等。确保你的Struts2版本与其他库(如Spring、Hibernate等)兼容,及时查阅官方文档和社区资源以解决问题。 总的来说,理解并正确配置...
接下来,我们创建`struts.xml`配置文件,这是Struts2的核心配置文件。在这个文件中,我们可以定义Action(操作)、结果类型、拦截器链以及全局的配置元素。例如,一个简单的Action配置可能如下: ```xml ...
### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...
Dispatcher Result 配置是 Struts2 框架中默认的 Result 配置类型。这种配置类型用于将结果.redirect 到一个 JSP 页面。如果在 Action 配置中没有指定其他的 Result 配置类型,那么 Dispatcher Result 配置将被使用...
### Struts2配置文件介绍 #### 一、Struts2的核心配置文件 在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`...
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` - 在“struts.xml”配置文件中,定义Action和结果页面。例如: ```xml ...
这些jar包是Struts2运行所必需的,缺少任何一项都可能导致运行时错误。 接下来,我们需要配置`web.xml`文件,这是Web应用程序的部署描述符。在`<filter>`和`<filter-mapping>`标签内,定义一个名为`struts2`的过滤...
### Struts2基本运行环境配置方法 #### 一、引言 在Java Web开发领域,Struts2框架因其简洁的设计模式、丰富的插件支持以及高度的可扩展性而备受开发者青睐。本文将详细介绍如何在MyEclipse环境中配置Struts2的基本...
1. **Struts2配置**:首先,需要在项目的`web.xml`文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。接着,创建`struts.xml`配置文件,定义Action类、结果...
这个错误通常是因为`struts.xml`配置文件的位置不正确或者没有被正确加载。确保`struts.xml`位于`src/main/resources`或`WEB-INF/classes`目录下,并且已经被包含在类路径中。 2. **缺少类定义错误:java.lang....
8. **ActionForward配置错误** 如果请求转发出现问题,检查ActionMapping的forward属性或action-forward元素,确保目标页面路径正确,并且该页面存在于应用的Web-INF目录或可访问路径下。 9. **Dispatcher Servlet...
在Struts2中,`web.xml`通常会包含Struts2的前端控制器Servlet,即`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`的配置。这个过滤器负责拦截HTTP请求,并将它们路由到Struts2的Action类...
### Struts2核心配置文件详解 #### 一、概述 Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件...
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` - 同时,需要配置Servlet容器支持JSP标签库,例如: ```xml ...