176142998

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

          一、iterator.

          這個標(biāo)簽主要的的作用就是跌代出集合。。

          value屬性表示需要跌代顯示出來的值。

          status屬性,又來保存跌代時的一些狀態(tài)值。

          注:1.如果需要引用valueStack中的值,需要使用這樣的形式。

          <s:iterator value="#userList" />  //userList在action部分被保存在Request中,所以使用#加屬性名來引用值。

          2.如果集合的值是通過action的方法,假設(shè)我們的action中有一個getListMenu方法,返回一個List集合。

          我們可以使用如下的形式來引用這個集合,并用s:iterator來輸出。

          <s:iterator value="listMenu" />

          3.iterator的value使用定義好的方式,如:

          <s:iterator value="{1,2,3,4}" />         //這樣跌代輸出的值就是1.2.3.4這四個值。

          二、iterator中輸出具體值,如果,在上面我們的list中的對象,有兩個屬性,都是String類型,一個是name,一個是url。

          我們可以這樣來引用。

          1.      <s:property value="name" />       //這樣我們將可以輸出跌代對象的name屬性值。

          2.     如果我們希望使用<s:url />來將跳轉(zhuǎn)過后的url進行處理,該如何來做?

                   <s:url value="%{url}"/>            //%{}ognl的表達式,這樣的值能夠?qū)rl的值進行<s:url/>的處理

                   實際上就是轉(zhuǎn)為絕對路徑。這樣,我們就可以對付一些因跳轉(zhuǎn)換產(chǎn)生的路徑問題。

              原因:因為<s:iteratotr />以后,當(dāng)前的對象應(yīng)該就在ValueStack頂部了,這樣當(dāng)然的url實際上就是對象的url          屬性了

          三、使用ognl輸出對應(yīng)的值。

          <s:textfield name="loginName" value="%{#request.loginNames}"/>

           

          使用此表達式,會生成一個文本框,并且,如果request.attribute中有l(wèi)oginNames屬性,將會做為些文本框的默認值。

          如果只使用#request.loginNames在struts2的標(biāo)簽內(nèi)部,是不會顯示任何值的,注意外面加上的%{}附號,才會被正常的使用。

          如果希望如EL語言一樣直接輸出文件,如在一個<a></a>之間的innerHTML文本為#request.loginNames的值,我們只要使用:<s:property value="#request.loginNames" />使可以正常使用!

           

          注:

          1.${}是EL語言的 %{}這樣的形式是ognl表過式語言的,在struts2的標(biāo)簽內(nèi)部,使用%{}這樣的形式,在標(biāo)簽外部可以使用${}EL語言的方式。如果在struts2的標(biāo)簽內(nèi)部使用${}這樣的方式,會出現(xiàn)以下的錯誤提示:

          According to TLD or attribute directive in tag file, attribute value does not accept any expressions

          2.很多時候,我們使用struts2的一些標(biāo)簽,屬性是需要接受集合的,如果集合是保存在request,session,或者是值棧(非根對象的棧頂),可以使用#變量名的方式,如果獲取的值是在Action中通過特定的方法來獲取,就需要使用如 value="userList"這樣的方式,只是去掉了前面的#。

           

          3.可能我對一些值棧,根對象,棧頂?shù)囊恍﹐gnl知識有些不錯誤,如果發(fā)現(xiàn)了問題,請幫助指出,謝謝。

          posted on 2008-08-04 09:25 飛飛 閱讀(232) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 安多县| 鸡西市| 寻甸| 那坡县| 泽库县| 古浪县| 剑阁县| 绥棱县| 肃南| 平度市| 孟村| 闽侯县| 广州市| 阿瓦提县| 天门市| 彩票| 徐水县| 浏阳市| 满城县| 宣武区| 武山县| 满洲里市| 承德县| 乌海市| 通州市| 双城市| 沁源县| 通海县| 临高县| 芜湖县| 晋城| 江永县| 莱阳市| 静海县| 田东县| 启东市| 武冈市| 青河县| 德惠市| 全椒县| 得荣县|