struts2配置codebehind
阿新 • • 發佈:2018-11-30
匯入jar包struts2-codebehind-plugin-2.3.28.1.jar。
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_3_0.xsd" id ="WebApp_ID" version="3.0">
<display-name>StrutsDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</ welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<description>struts2過濾器 </description>
<filter-name>struts2</filter-name>
<filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>
com.nayi<!-- 包名,若配置多個,用逗號(,)分隔 -->
</param-value>
</init-param>
<init-param>
<param-name>packages</param-name>
<param-value>app/pages</param-value><!-- jsp頁面 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!-- struts2中action字尾名 -->
<constant name="struts.action.extension" value="action" />
<!-- 預設編碼方式 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<!-- 是否為開發模式,在開發模型中可以獲得更多的跟蹤資訊 -->
<constant name="struts.devMode" value="false" />
<!-- 標籤主題 -->
<constant name="struts.ui.theme" value="pure" />
<!-- 資原始檔名稱 -->
<constant name="struts.custom.i18n.resources" value="globalMessages" />
<!--靜態資原始檔配置 -->
<constant name="struts.serve.static" value="true" />
<constant name="struts.serve.static.browserCache" value="true" />
<!--
<constant name="struts.staticContentLoader"
value="com.bonc.commons.struts2.dispatcher.StaticContentLoader"/>
-->
<!-- 在開發模式下啟用 配置改變時自動載入 -->
<constant name="struts.convention.classes.reload" value="true" />
<!-- 允許Ognl表示式訪問靜態方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<!-- 上傳檔案的最大檔案大小 -->
<constant name="struts.multipart.maxSize" value="10485760" />
<!-- action預設的父package,action將自動繼承父package的所有屬性,在action沒有顯式宣告action的父package時生效
<constant name="struts.configuration.classpath.defaultParentPackage"
value="pure-default" />
-->
<!-- 在尋找資源時是否忽略大小寫 -->
<constant name="struts.configuration.classpath.forceLowerCase"
value="false" />
<!-- codebehind中查詢action的返回結果資源時的預設資料夾 -->
<constant name="struts.codebehind.pathPrefix" value="/app/pages/" />
<constant name="struts.allowed.action.names" value="[a-zA-Z0-9._!/\-]*" />
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
</struts>
使用方法:
對於上述的配置,若action的路徑為com.nayi.test.Test ,則url應該為http://IP:埠號/專案名/test/Test.action,對應的jsp路徑應為app/pages/test/Test.jsp。
對於請求方法的情況,若要請求Test的aaa(),url應為http://IP:埠號/專案名/test/Test!aaa.action。若aaa()的返回值為return “bbb”;,對應的jsp應為Test-bbb.jsp。
通過上述方法,可實現跳轉的零配置。
具體使用的jar包如下:struts2-codebehind-plugin-2.3.28.1.jar,struts2-core-2.3.32.jar,xwork-core-2.3.32.jar。
有可能我的專案中的其他jar包也對此功能有影響,發一個全的(有一多半jar包只是為了使用org.springframework.orm.ibatis.SqlMapClientTemplate這個類)
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.2.jar
commons-io-2.2.jar
commons-lang3-3.2.jar
commons-logging-1.1.3.jar
dom4j-1.6.1.jar
freemarker-2.3.22.jar
ibatis-2.3.4.726.jar
javassist-3.11.0.GA.jar
log4j-1.2.17.jar
ognl-3.0.19.jar
ojdbc14.jar
spring-aop-3.2.3.RELEASE.jar
spring-aspects-3.2.3.RELEASE.jar
spring-beans-3.2.3.RELEASE.jar
spring-context-3.2.3.RELEASE.jar
spring-context-support-3.2.3.RELEASE.jar
spring-core-3.2.3.RELEASE.jar
spring-expression-3.2.3.RELEASE.jar
spring-jdbc-3.2.3.RELEASE.jar
spring-orm-3.2.3.RELEASE.jar
spring-oxm-3.2.3.RELEASE.jar
spring-tx-3.2.3.RELEASE.jar
spring-web-3.2.3.RELEASE.jar
struts2-codebehind-plugin-2.3.28.1.jar
struts2-core-2.3.32.jar
xwork-core-2.3.32.jar