Struts2 iterator介紹及功能詳解
一、Struts2 iterator介紹.
這個標簽主要的的作用就是跌代出集合。。
value屬性表示需要跌代顯示出來的值。
status屬性,又來保存跌代時的一些狀態值。
注:1.如果需要引用valueStack中的值,需要使用這樣的形式。
2.如果集合的值是通過action的方法,假設我們的action中有一個getListMenu方法,返回一個List集合。
我們可以使用如下的形式來引用這個集合,并用s:iterator來輸出。
3.Struts2 iterator的value使用定義好的方式,如:
//這樣跌代輸出的值就是1.2.3.4這四個值。
二、Struts2 iterator中輸出具體值,如果,在上面我們的list中的對象,有兩個屬性,都是String類型,一個是name,一個是url。
我們可以這樣來引用。
1. //這樣我們將可以輸出跌代對象的name屬性值。
2. 如果我們希望使用
//%{}ognl的表達式,這樣的值能夠將url的值進行
實際上就是轉為絕對路徑。這樣,我們就可以對付一些因跳轉換產生的路徑問題。
原因:因為
三、使用ognl輸出對應的值。
使用此表達式,會生成一個文本框,并且,如果request.attribute中有loginNames屬性,將會做為些文本框的默認值。
如果只使用#request.loginNames在struts2的標簽內部,是不會顯示任何值的,注意外面加上的%{}附號,才會被正常的使用。
如果希望如EL語言一樣直接輸出文件,如在一個之間的innerHTML文本為#request.loginNames的值,我們只要使用:
注:
1.${}是EL語言的 %{}這樣的形式是ognl表過式語言的,在struts2的標簽內部,使用%{}這樣的形式,在標簽外部可以使用${}EL語言的方式。如果在struts2的標簽內部使用${}這樣的方式,會出現以下的錯誤提示:
According to TLD or attribute directive in tag file, attribute value does not accept any expressions
2.很多時候,我們使用struts2的一些標簽,屬性是需要接受集合的,如果集合是保存在request,session,或者是值棧(非根對象的棧頂),可以使用#變量名的方式,如果獲取的值是在Action中通過特定的方法來獲取,就需要使用如 value="userList"這樣的方式,只是去掉了前面的#。
3.可能我對一些值棧,根對象,棧頂的一些ognl知識有些不錯誤,如果發現了問題,請幫助指出,謝謝。
【編輯推薦】