1. 程式人生 > >struts2配置codebehind

struts2配置codebehind

匯入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