struts2中各版本jar包需求及配置设置

[原文:http://wangxinghaoaccp.blog.163.com/blog/static/11581023620113213161958/]

1、核对lib包

commons-fileupload-1.#.#.jar, 
commons-io-1.#.#.jar 
commons-logging-1.#.#.jar 
freemarker-2.#.#.jar 
ognl-3.#.jar 
struts2-core-2.#.#.jar 
xwork-core-2.#.#.jar

注意2.1以前是没有commons-fileupload-1.2.1.jar,

2、如果struts2版本是2.1以前

web.xml配置过滤器的时候应该是这样:

<web-app> 
<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> 
</web-app>

如果struts2 版本是2.1以上

web.xml配置

<web-app> 
<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>   
</web-app>

3、

在使用大于struts-2.2.1的版本时,需要引入javassist-3.#.GA.jar!否则,会出现如下的Dispatcher initialization failed错误:

严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
 at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295)
 at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:431)
 at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207)
 at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
 at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93)
 at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
 at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484)
 at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)
 at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484)
 at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252)
 at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
 at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
 at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
 at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
 at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
 at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
 at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
 at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
 at org.apache.catalina.core.StandardService.start(StandardService.java:516)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.reflect.InvocationTargetException

4. struts.xml配置文件
 在struts1.x中的配置文件一般叫struts-config.xml(当然也可以是其他的文件名),而且一般放到WEB-INF目录中。而在struts2.x中的配置文件一般为struts.xml,放到WEB-INF的classes目录中(可以在工程的src下创建,build后会自动copy到classes下)。

struts.xml配置文件中,package里元素必须按照一定的顺序排列。这个顺序就是
result-types
interceptors
default-interceptor-ref
default-action-ref
default-class-ref
global-results
global-exception-mappings
action*(就是所有的action放到最后)

否则,会出现错误,提示是:

“The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)". ”

5. struts2 的taglib

在Struts2中已经将Struts1.x的好几个标签库都统一了,在Struts2中只有一个标签库"/struts-tags"。这里面包含了所有的Struts2标签。

struts2中各版本jar包需求及配置设置相关推荐

  1. srtp项目中关于引入Maven仓库中指定版本jar包的一些问题

    文章目录 背景 问题 解决方案 打开Maven的搜索 搜索网址打开之后,直接将你想要查找的jar包全名输进去即可,类似于向下面这样. 指定之后仍然代码出错 背景 相信很多和我一样刚入门的新人对于另外一 ...

  2. spring各版本jar包下载,持续更新中

    spring中各jar包的主要功能 Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合 Sp ...

  3. Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  4. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets {main {j ...

  5. spring各版本jar包和源码

    spring各版本jar包和源码 spring历史版本源码:https://github.com/spring-projects/spring-framework/tags spring历史jar包和 ...

  6. java工程加包_Java工程中添加依赖jar包不起作用问题总结

    Java工程中添加依赖jar包不起作用问题总结 此次总结两种方式的依赖问题 1 在Eclipse中添加依赖jar包不起作用问题 这种方式可能是Eclipse缓存,或者Eclipse还没有反应过来.例如 ...

  7. Andriod开发中正确引入jar包的方式

    andriod中如果引入jar包的方式不对就会出现一些奇怪的错误. 工作的时候恰好有一个jar包需要调用,结果用了很长时间才解决出现的bug. 刚开始是这样引用的(eclipse): 右键工程,Bui ...

  8. ADT17中引入外部JAR包时出现ClassNotFoundException

    在ADT17之前,如果要在Android项目中引入外部JAR包,只需在项目属性的Java Build Path中选择Add External JARs,然后选择相应JAR包即可.但是,在升级到ADT1 ...

  9. 关于如何正确地在android项目中添加第三方jar包

                  在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...

最新文章

  1. Android学习路线
  2. Android错误之--activity_main cannot be resolved or is not a field
  3. (006)RN开发之iOS真机调试
  4. undefined reference to cv::_InputArray::_InputArray(cv::Mat const)
  5. python将文件夹打包
  6. SharePoint的WebService的应用
  7. 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
  8. 前端框架--React props与React state
  9. netcat、ncc工具使用
  10. 电机的入门之路系列3--直流电机的工作原理
  11. 南卫理公会大学 计算机排名,2020年南卫理公会大学Times世界排名
  12. bootdo框架使用步骤总结
  13. Linux网络协议栈
  14. mt4怎么用云服务器跟单,免费好用的跟单系统 神速MT4跟单ea系统使用教程
  15. Webmax 2.0开启无限量下载
  16. 计算机附件常用工具,Windows附件常用工具
  17. 【半年时光-追寻你的足迹】
  18. 安装应用宝统一链接服务器,数据互通|安卓应用宝部分区服服务器数据互通维护公告...
  19. uni-app 超详细教程(一)(从菜鸟到大佬)
  20. IMT和北京大学微纳电子学研究院持续开展战略合作,三位优秀学生获2017年度MEMS专项奖学金

热门文章

  1. 单线程任务 Task.Factory.StartNew 封装
  2. 20172318 2017-2018-2 《程序设计与数据结构》实验4报告
  3. opensuse x64下编译Ice源码(以编译c++为例)
  4. 基于ZooKeeper的Dubbo注册中心【转】
  5. ajax的data传参的两种方式
  6. Github博客地址
  7. 浅谈C#中一种类插件系统编写的简单方法(插件间、插件宿主间本身不需要通信)...
  8. Apache配置(转载)
  9. mpvue微信小程序http请求-fly.js
  10. android 广播 7.0变化,安卓7.0到底带来了那些变化?