以前学过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。这回搞定了,没有提示错误和警告了。
相关推荐
org.apache.struts2.dispatcher.FilterDispatcher
针对Struts2.5.2最新版本的配置进行了梳理,通过一步步的步骤和发生的问题点的解决,完成对Struts2.5.2的配置。
The org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation for a multipart request (file upload) 专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart....
这个bug是由Struts2上传文件后return SUCCESS后报的错误: java.lang.AbstractMethodError: be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp()V at org.apache.struts2.dispatcher.multipart....
<?xml version="1.0" encoding="UTF-8"?... org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter <!-- 拦截所有的url --> <filter-name>struts2 <url-pattern>/* </web-app>
org.apache.struts2, org.apache.struts2.components, org.apache.struts2.components.template, org.apache.struts2.config, org.apache.struts2.dispatcher, org.apache.struts2.dispatcher.mapper, org.apache....
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- 引用个具体类文件 --> </filter> <filter-mapping> <filter-name>struts2</filter-name> ...
最近温习ssh2整合编程,顺便浏览下struts2有什么更新的消息,下载了新版本的struts2的2.1.8.1版,使用的是MyEclipse8.0开发,但是问题就随之而来了。MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5...
<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>...
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher, 新版本中都是过时的了,采取该过滤器, <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class="com.struts2.MyDefaultActionMapper" /> <constant name="struts.mapper.class" value=...
tomcat报错Unable to find 'struts multipart saveDir解决
plexus-sec-dispatcher-1.3.jar
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>...
该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...
Laravel开发-dispatcher Laravel 5基于事件的请求和命令调度程序
-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file="struts-default.xml"> <!-- package提供了将多个Action组织为一个模块的方式 ...
struts.properties设置( struts.objectFactory = spring struts.i18n.reload=true ... org.apache.struts2.dispatcher.ActionContextCleanUp <filter-name>struts-cleanup <url-pattern>/* </filter-mapping>
org.apache.struts2.dispatcher.FilterDispatcher dispatcher这个单词写错了。 3、LoginAction.java这个文件中的方法写错了。public String execute(),excecute这个单词写错了。 4、struts.xml中的...