struts-2.3.34和struts-2.5.16引入jar以及配置web.xml和struts.xml
阿新 • • 發佈:2019-01-07
struts-2.3.34
1. 引入jar
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
jarlist.txt
javassist-3.11.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
xwork-core-2.3.16.3.jar
2. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="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>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3. struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<!-- 所有的Action定義都應該放在package下 -->
<package name="crazyit" namespace="/" extends="struts-default">
<action name="*">
<result>/WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>
struts-2.5.16
1. 引入jar
asm-5.1.jar
asm-commons-5.1.jar
asm-tree-5.1.jar
commons-fileupload-1.3.2.jar
commons-io-2.4.jar
commons-lang3-3.4.jar
commons-logging-1.1.3.jar
freemarker-2.3.23.jar
jarlist.txt
javassist-3.20.0-GA.jar
log4j-api-2.7.jar
ognl-3.1.12.jar
struts2-core-2.5.16.jar
相對於struts-2.3.34,2.5.16版本需要匯入的基本jar要少了xwork-core-2.3.34.jar,多了
log4j-api-2.7.jar。由於xwork-core已經整合到struts-core中了,所以這裡我們在下載struts-2.5.16/lib找不到xwork-core的字眼,但我們可以用解壓軟體開啟struts-core檢視內部的檔案,可以發現到之前版本所沒有的xwork。如果沒有
log4j-api-2.7.jar`,在web.xml和struts.xml配置正確的前提下,會報錯如下錯誤:
2. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="starter" 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.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
-->
<!-- 以下路徑中沒有ng目錄 -->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
細心可以發現一個很大的不同是,2.5.16版本配置<filter-class>
指定類檔案路徑中少了一個ng
。是的沒有錯,我們只要開啟struts2-core-2.5.16.jar
即可發現裡面不存在子目錄ng
。也只有通過上面的路徑才能找到類StrutsPrepareAndExecuteFilter
。如果沒有配置正確的路徑就會報以下錯誤:
3. struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<!-- 所有的Action定義都應該放在package下 -->
<package name="crazyit" namespace="/" extends="struts-default">
<action name="*">
<result>/WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>