struts-config.xml中 action 的attribute屬性與name屬性
所以,是否配置attribute屬性就決定了actionForm儲存在scope中的key值是採用name,還是採用attribute
2、 在《Programming Jakarta Struts》這本書中的第四章“Configuring the Struts Application”中這樣一段說明來分別闡述這兩
個屬性:(102頁)
++++++++
atribute:
++++++++
The name of the request or session scope attribute under which the form bean for this action can be accessed.
A value is only allowed here if there is a form bean specified in the name attribute. This attribute is
optional and has no default value.
++++++++
name:
++++++++
The name of the form bean, if any, that is associated with this action. This value must be the name attribute
from one of the form-bean elements
最初看這些真的還是不好區分這兩者。不過在仔細看過struts的原始碼以後,豁然開朗。。。
下面主要對attribute進行解釋,應為沒有人會對name屬性不瞭解的(呵呵。。。)
解釋:在struts例項化actionform的時候,有兩種情況:如果已經存在,那麼從記憶體中取回;如果第一次例項化,那麼建立,並放入記憶體。
這樣就有一個問題了,struts是根據什麼來取回並建立actionform的呢,答案就是attribute的值。讓我們進入struts的原始碼:
/**
*建立或者取回formbean方法
*該方法在:org.apache.struts.util.RequestUtils中
*/
public static Actionform createActionform(
HttpServletRequest request,
ActionMapping mapping,
ModuleConfig moduleConfig,
ActionServlet servlet) {
。。。。
。。。
// Is there a form bean associated with this mapping?
//得到action mapping中attribute的值
String attribute = mapping.getAttribute();
。。。。
。。。。
Actionform instance = null;
HttpSession session = null;
//yes!!就在這裡了,把建立以後的actionform放在request或者session裡,看到放入的名字了麼,就是mapping.getAttribute();
if ("request".equals(mapping.getScope())) {
instance = (Actionform) request.getAttribute(attribute);
} else {
session = request.getSession();
instance = (Actionform) session.getAttribute(attribute);
}
。。。
。。。
}
下面又有一個問題浮出水面:如果我沒有在action mapping中指定attribute呢,那struts 是如何解決的?
答案很簡單,如果單從結果上看,此時struts使用的name的值,為什麼呢,看struts原始碼:
/**
* The request-scope or session-scope attribute name under which our
* form bean is accessed, if it is different from the form bean's
* specified <code>name</code>.
*該程式碼在:org.apache.struts.config.ActionConfig中
*/
protected String attribute = null;
public String getAttribute() {
//yes!!!!就在這裡,看到了吧,如果你沒有設定attribute,那麼struts 會把name的值拿過來用。呵呵。。。
if (this.attribute == null) {
return (this.name);
} else {
return (this.attribute);
}
}
public void setAttribute(String attribute) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.attribute = attribute;
}
相關推薦
struts-config.xml中 action 的attribute屬性與name屬性
1、在一般情況下,actionForm是被儲存在一定的scope中(request或session,通過action的scope屬性來配置),當我們在配置時,指定name而不指定attribute,那麼指定的name值就作為actionForm儲存在scope中的key值,
Struts1的struts-config.xml中action-mappings的parameter 屬性詳解
action-mappings的parameter 屬性 沒有struts之前,使用servlet,最常用的是doGet,doPost,service方法,如果有些經驗的程式設計師會合理的使用這三個方 法:如在使用者發出get的請求時,將使用者請求在doGet方法
struts-config.xml中action元素的parameter屬性
沒有struts之前,使用servlet,最常用的是doGet,doPost,service方法,如果有些經驗的程式設計師會合理的使用這三個方法:如在使用者發出get的請求時,將使用者請求在doGet方法中處理,使用者發出post請求時,將使用者的請求用doPost請求處理,
Struts xml中Action的method與路徑的三種匹配方法
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
struts中form表單中的請求action路徑和struts-config.xml中響應路徑的注意點
舉個例子:本人建立了一個ssh的專案demo,專案結構如下圖所示: 這個專案有登陸介面,有login.jsp檔案,這個檔案的form表單請求如下 <body> <h1&g
struts中struts-config.xml檔案解釋
String name = mapping.getName(); String type = mapping.getType(); String path = mapping.getPath(); System.out.println("actionN
Struts中使用多個配置檔案 struts-config.xml
或許很多開發人員都面臨著這樣的困惑,那就是struct-config.xml檔案中有很多的配置,什麼action,formbean..... 我這裡說的100個action那是很小的專案了,呵呵,看得眼花繚亂,不利於模組化的開發和維護;解決的方法就是把struct-conf
spring的xml中p名稱空間與C名稱空間簡化屬性賦值
p名稱空間與C名稱空間簡化屬性賦值 Spring給我們提供的一種比較簡便的方式來為我們的屬性賦值 P名稱空間用於簡化set方法的屬性賦值 C名稱空間用於簡化構造器的屬性賦值 第一步:加上我們的P名稱空間與C名稱空間 <?xml version="1.0" encodi
Struts-config.xml配置檔案《action-mappings》元素的詳解
Struts配置檔案的詳細解析 ction-mappings 該元素用於將Action元素定義到ActionServlet類中,它含有0到多個<action/>元素,其格式如下: <action-mappings> <
struts-config.xml
發的 pin pac element 重定向 需要 類型 cat content <struts-config>是struts的根元素,它主要有8個子元素,DTD定義如下: <!ELEMENT struts-config (data-sources?
Myeclispe下struts-config.xml文件無法圖形界面打開
xml文件 圖形 logs image 問題 項目 文件 未能 servlet 1.今天更改web.xml文件不小心誤刪了下面的配置文件,導致出現如圖的錯誤 <servlet-mapping> <servlet-name>action
struts-config.xml 文件:
alias inf void 聯系 section err nac nocache 文件的 struts-config.xml配置文件是一個在Web客戶端組件的視圖和模型之間的聯系,但你的項目的99.99就不會碰這些設置%。基本的配置文件包含以下主要內容: SNInte
struts-config.xml檔案配置
原文地址連結:http://blog.csdn.net/huozhicheng/article/details/5426356 <struts-config>是struts的根元素,它主要有8個子元素,DTD定義如下: [xhtml]&n
struts----struts-config.xml檔案配置學習
1.概述。 在Struts應用啟動時,會把Struts配置檔案中的配置資訊讀入到記憶體中,並把他們放到config包中相關javaBean類的例項 中,org.apache.struts.config包中的每一個類都和St
struts-config.xml的dtd檔案的宣告方式
第一種是PUBLIC關鍵字,訪問本地的DTD檔案,通過"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"這個別名在struts.jar檔案中查詢,如果找不到,再訪問url
java中類屬性與物件屬性
1,定義 類屬性:又叫做靜態屬性,即被static修飾。 物件屬性:又叫例項屬性,非靜態屬性。 如果一個屬性宣告成類屬性,那麼所以的物件,都共享這麼一個值。 給所以英雄設定一個類屬性叫做“版權(copyright)”,那麼無論有多少具體的英雄,所以的英
一個struts問題!配置了web.xml和struts-config.xml後,執行簡單的測試頁面(test.jsp)出問題100分急求!!!
java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagExtraInfo java.lang.ClassLoader.defineClass0(Native Method) java.lang.ClassL
struts-config.xml配置
struts-config.xml是Struts的主要配置檔案,在該檔案中,可以配置資料來源、form-bean、action和plug-in(外掛)和資原始檔的資訊。其檔案主要結構如下所示: <?xml version="1.0" encoding="UTF-8"?
struts1的配置檔案struts-config.xml配置詳解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "struts-co
Struts2中Action接收引數的方法:屬性,Model,ModelDriver
Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數: a.定義:在Action類中定義屬性,建立get和set方法; b.接收:通過屬性接收引數,如:userName; c.傳送:使用屬性名傳遞引數,如:u