struts2配置檔案中的include和global-results
今天遇到的一個這樣的問題:幾個struts2的配置檔案 用include 進struts.xml配置檔案裡面去。每個配置檔案都有 一個 相同的<global-results> 想把它們提出來來 放到struts.xml配置檔案裡面去。這樣就只需要配置一個<global-results> 了。但是遇到一點問題。404的。以下是網上找的解決方法。
(1)struts-user.xml
<struts> <package name="struts-user" extends="struts-default"> <global-results> <result type="redirect-action">UserAction_queryAll</result> </global-results> <action name="UserAction_login" class="userAction" method="login"></action> <action name="UserAction_insert" class="userAction" method="insert"></action> <action name="UserAction_update" class="userAction" method="update"></action> <action name="UserAction_delete" class="userAction" method="delete"></action> <action name="UserAction_queryById" class="userAction" method="queryById"></action> <action name="UserAction_queryByLike" class="userAction" method="queryByLike"></action> <action name="UserAction_queryAll" class="userAction" method="queryAll"> <result>/user/user_list.jsp</result> </action> </package> </struts>
(2)struts.xml(引入了struts-user.xml)
<struts>
<include file="struts-user.xml"></include>
<package name="struts" extends="struts-default"></package>
</struts>
1. 使用<include>標籤重用配置檔案
(1)在Struts2中提供了一個預設的struts.xml檔案,但如果package、action、interceptors等配置比較多時,都放到一個struts.xml檔案不太容易維護。因此,就需要將struts.xml檔案分成多個配置檔案,然後在struts.xml檔案中使用<include>標籤引用這些配置檔案。如上面的程式碼。
注意:用<include>引用的xml檔案也必須是完成的struts2的配置。實際上<include>在引用時是單獨解析的xml檔案,而不是將被引用的檔案插入到struts.xml檔案中。
注意:struts.xml和struts-user.xml中<package></package>標籤中的name屬性不能相同。道理很簡單,<struts></struts>標籤中可以有多個<package></package>標籤,要通過name屬性以示區別。
(2)Apache Struts 2 Documentation: Can we break up a large struts.xml file into smaller pieces --> Yes, there are two approaches. We can include other struts.xml file from a bootstrap, or we can package a struts.xml files in a JAR. Or both.
<1>By Include:A typical struts.xml files will have one or more include elements:
<struts>
<include file="struts-default.xml"/>
<include file="config-browser.xml"/>
<package name="default" extends="struts-default">
....
</package>
<include file="other.xml"/>
</struts>
The first include element tells the framework to load the struts-default.xml, which it will find in the struts2.jar file. The struts-default.xml file defines the "standard" interceptor and result definitions. You can put your own <include> elements in your
struts.xml interchangeably with <package> elements. The configuration objects will be loaded in the order of appearance. The framework reads the configuration from top to bottom and adds objects as they are referenced.
<2>By JAR
A "module" can be added to an application by placing a struts.xml and related classes into a JAR on the classpath. FreeMarker and Velocity templates can also be provided by JAR, making it possible to distribution a module in a single, self-contained JAR that is automatically configured on startup.
2. 全域性result(global-results)
(1)有很多時候一個<result>可供很多<action>使用,這時可以使用<global-results>標籤來定義全域性的<result>,程式碼見struts-user.xml。執行順序:當一個Action返回的String沒有相應的<result>與之對應,Struts2就會查詢全域性的<result>。
(2)Apache Struts 2 Documentation: Global Results
Most often, results are nested with the action element. But some results apply to multiple actions. In a secure application, a client might try to access a page without being authorized, and many actions may need access to a "logon" result. If actions need to share results, a set of global results can be defined for each package. The framework will first look for a local result nested in the action. If a local match is not found, then the global results are checked.
<!-- Defining global results -->
<global-results>
<result name="error">/Error.jsp</result>
<result name="invalid.token">/Error.jsp</result>
<result name="login" type="redirectAction">Logon!input</result>
</global-results>
3. <include>標籤和<global-results>標籤結合
(1)<global-results>標籤的作用域只是當前<struts></struts>,也可以說是當前的xml檔案;struts2不允許把struts-user.xml(通過<include>引入到struts.xml)中的<global-results>標籤寫在struts.xml中。
(2)如果struts-user.xml中的package繼承自struts.xml中的package,則可以將struts-user.xml中的<global-results>放在struts.xml中。然後struts-user.xml將此<global-results>從struts.xml中繼承過來。例如(將上面的兩段程式碼簡單修改):
(1)struts-user.xml
<struts>
<!-- 這裡struts-user繼承(extends)的是struts, 即struts.xml中package的name屬性值 -->
<package name="struts-user" extends="struts">
<action name="UserAction_login" class="userAction" method="login"></action>
<action name="UserAction_insert" class="userAction" method="insert"></action>
<action name="UserAction_update" class="userAction" method="update"></action>
<action name="UserAction_delete" class="userAction" method="delete"></action>
<action name="UserAction_queryById" class="userAction" method="queryById"></action>
<action name="UserAction_queryByLike" class="userAction" method="queryByLike"></action>
<action name="UserAction_queryAll" class="userAction" method="queryAll">
<result>/user/user_list.jsp</result>
</action>
</package>
</struts>
(2)struts.xml(引入了struts-user.xml)
<struts>
<include file="struts-user.xml"></include>
<package name="struts" extends="struts-default">
<global-results>
<result type="redirect-action">UserAction_queryAll</result>
</global-results>
</package>
</struts>
相關推薦
struts2配置檔案中的include和global-results
今天遇到的一個這樣的問題:幾個struts2的配置檔案 用include 進struts.xml配置檔案裡面去。每個配置檔案都有 一個 相同的<global-results> 想把它們提出來來 放到struts.xml配置檔案裡面去。這樣就只需要配置一個<
struts2: include和global-results
先貼兩段程式碼,在慢慢解釋 (1)struts-user.xml 1.<struts> 2. <package name="struts-user" extends="struts-default"> 3. 4. &
struts2配置檔案中的include問題
今天遇到的一個這樣的問題:幾個struts2的配置檔案 用include 進struts.xml配置檔案裡面去。每個配置檔案都有 一個 相同的<global-results> 想把它們提出來來 放到struts.xml配置檔案裡面去。這樣就只需要配置一個&l
struts2 配置檔案中各個項詳解
<action name= "Login_* " method= "{1} " class= "mailreader2.Login "> 中Login_*帶*是什麼意思?method= "{1} "帶{}這個是什麼意
struts2[3.5]在struts2配置檔案中使用OGNL表示式
1.新建一個Demo3Action.java,只需重寫execute()方法即可: package com.aisino.b_config; import com.opensymphony.xwork2.ActionSupport; public class Demo3Action exte
struts2配置檔案中method="{1}"詳解
struts2為了簡化配置檔案,來採用了萬用字元的方式 圖中的method="{1}"指向的是action後的第一個萬用字元,也就是如圖的 * , 假如name中含有多個萬用字元 , 則method
struts2配置檔案中result的type型別
struts的核心配置檔案是struts找頁面用的,用返回的字串,通過配置檔案的配置,去查詢返回相應的頁面。在struts配置檔案中,result的型別有不同種類,預設的跳轉方式是dispat
[Struts2] 配置檔案struts.xml和web.xml詳解
配置檔案struts.xml和web.xml。 其實要使Struts2可以工作,配置很簡單,套模板就好了。而且基本與版本無關。 如,只要struts2需要的基本jar包已經引入,那麼直接配置一下web.xml和struts.xml檔案。 web.xml中包含: <
Struts2配置檔案中的萬用字元的使用
<package name="user" extends="struts-default" namespace="/"><action name="user_*" class="com.test.action.UserAction" method="
讓Eclipse中spring的xml配置檔案出現屬性和類提示
在spring配置檔案中可以讓配置bean的時候出現提示,這裡需要做一些設定。設定包括安裝springide外掛,spring-beans-version.xsd檔案引入,增加xml編輯提示的字元,預設只有=>:。最後是讓配置檔案可以通過Spring Config Editor的方式開
Spring配置檔案中配置property標籤的name和ref的區別:
在看李剛的《Java EE企業實戰》,裡面有一個關於Spring的配置的 <bean id=“person” class=“service.Person”> <!-- 控制器呼叫setAxe方法,將容器中的axe bean作為傳入的引數 --> <!–此處的na
Spring Boot Cache + redis 設定有效時間和自動重新整理快取,時間支援在配置檔案中配置
分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
【轉載】python使用loggin和ConfigParser配置檔案中遇到的問題
原文連結:https://blog.csdn.net/weixin_39918285/article/details/79551104 問題一: 載入loggin配置檔案時出錯 UnicodeDecodeError 一開始logger.conf配置檔案的存檔格式為unicode,該檔案中有中文字
struts2配置檔案的載入順序和優先順序
1.優先順序 web.xml > struts.properties > struts.xml > default.properties 2.載入順序 1.default.properties檔案 作用
小程式中JSON檔案中全域性和子頁面的欄位window配置
相信有過實際小程式開發的人,都不陌生主程式app.json和子頁面的XX.json檔案中window欄位的配置。 如果全域性都是用app.json的一個樣式,那麼你就可以忽略掉此文。但是你想個性化單獨設定各個頁面的window欄位,那麼問題來了, 你會發現:嚴格按照小程式官方的window格式來設定,就是不
登入plsql時,登入視窗資料庫顯示的和配置檔案中不匹配
先用win+r快捷鍵進入cmd,輸入sqlplus/nolog,進入下一行,輸入: conn manager /system as sysdba;看你本地oracle和plsql的裝載有沒有問題,沒有問題,說
Node.js專案的package.json配置檔案中的devdependencies 和 dependencies的區別
1、dependencies和devDependencies 具體程式碼如下 "name": "webpack-react-express", "version": "0.2.0", "private": true, "dependencies": {
SpringBoot學習——如何設定和讀取配置檔案中屬性
配置檔案配置 直接配置 在src/main/resources下新增配置檔案application.properties 例如修改埠號 #埠號 server.port=8089 分環境配置 在src/main/resources下新增,application-pro.
Java路徑中的CLASSPATH和配置檔案中的CLASSPATH
一. Java路徑中的CLASSPATH (1)類路徑(classpath) java編譯器編譯.java檔案和java虛擬機器執行.class檔案時的路徑寫法是不一樣的。 在沒有設定任何classpath
Spring Boot快取實戰 Redis 設定有效時間和自動重新整理快取,時間支援在配置檔案中配置
問題描述 Spring Cache提供的@Cacheable註解不支援配置過期時間,還有快取的自動重新整理。 我們可以通過配置CacheManneg來配置預設的過期時間和針對每個快取容器(value)單獨配置過期時間,但是總是感覺不太靈活。下面是一個示例: @Bean