struts2中各版本jar包需求及配置设置
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包需求及配置设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保时捷回应12.4万Panamera遭抢
- 下一篇: 沉迷机器人?小米足式机器人专利获授权 结