如何使用JSTL來讀取Action中的變數

2021-06-13 04:09:24 字數 1072 閱讀 7869

不過隨著時代的發展,上面的這種方式,已經不再被推薦使用了。(雖然如此,我們依然可以學習它的乙個解決問題的思路)目前來說,自從 webwork2.2以後,包括struts2,都使用另外一種整合方式:對httpservletrequest進行裝飾。讓我們來看一下原始碼:

/*** the constructor

* @param req the request

*/super(req);

}/**

* gets the object, looking in the value stack if not found

** @param s the attribute key

*/public object getattribute(string s)

actioncontext ctx = actioncontext.getcontext();

object attribute = super.getattribute(s);

boolean alreadyin = false;

if (b != null)

// note: we don't let # come through or else a request for

// #attr.foo or #request.foo could cause an endless loop

if (!alreadyin && attribute == null && s.indexof("#") == -1)

} finally

}return attribute;

}}看到了嘛?這個類會在struts2初始化的時候,替換httpservletrequest,執行於整個struts2的執行過程中,當我們試 圖呼叫request.getattribute()的時候,就會執行上面的這個方法。(這是乙個典型的裝飾器模式)在執行上面的方法時,會首先呼叫 httpservletrequest中原本的request.getattribute(),如果沒有找到,它會繼續到valuestack中去查詢, 而action在valuestack中,所以action中的變數通過ognl表示式,就能找到對應的值了。

**:

如何用ResourceBundle來讀取配置檔案

對於ja va基礎很好的人來說,這個應該是簡單的不能再簡單的了。不過估計一些ja va新手不一定會知道 比如我,上次為別人寫乙個東西,需要從外存讀檔案來設定物件的值,因為不知道有resourcebundle這種東西,就自己用filereader在那搞,折騰了半天,最後還不能把配置檔案和jar包打在一...

如何用ResourceBundle來讀取配置檔案

對於ja va基礎很好的人來說,這個應該是簡單的不能再簡單的了。不過估計一些ja va新手不一定會知道 比如我,上次為別人寫乙個東西,需要從外存讀檔案來設定物件的值,因為不知道有resourcebundle這種東西,就自己用filereader在那搞,折騰了半天,最後還不能把配置檔案和jar包打在一...

使用FileStream來讀取資料

using system using system.collections.generic using system.io using system.linq using system.text using system.threading.tasks namespace listlistchar ...