分享java帶來的快樂

          我喜歡java新東西

          重新總結struts標簽嵌套錯誤

          首先,上一篇中轉的html:select標簽的示例二中的嵌套是錯誤的。

          其實struts標簽是不能夠嵌套的;
          例一:<logic:iterate id="cl" name="Ids"> //循環取得id  
                      //比較beanname中的id是否和cl中的id相同,如果相同就顯示cl中的name     
                        <logic:equal name="beanname" property="id" value="<bean:write name="cl" property="id"/>">      
                            <bean:write name="cl" property="name"/>
                    </logic:equal>
                  </logic:iterate>  
                  紅色文字區就是錯誤的嵌套了,這樣是得不到想要的結果的,可改爲
                  <logic:iterate id="cl" name="Ids"> //循環取得id
                       <bean:define id="temId" name="cl" property="id" type="java.lang.String"/>
                        //比較beanname中的id是否和cl中的id相同,如果相同就顯示cl中的name
                        <logic:equal name="beanname" property="id" value="<%=temId%>">      
                              <bean:write name="cl" property="name"/>
                    </logic:equal>
                  </logic:iterate>  
                  這樣先定義,后使用,就ok了。
          例二:<html:submit value="<bean:message key="welcome.login" bundle="base"/>"/>
                   應該為
                    <html:submit>
                    <bean:message key = "welcome.logon" bundle = "base"/>
                   </html:submit>

             

          剛開始使用struts標簽時,很痛苦,三個人窩在實驗室里把struts罵了個遍,但用還是得用,而且強制用,必須學會。我因為之前用的是webwork,所以老是拿兩個做對比,不過現在好了,struts2出來啦!!
                struts標簽的用法網上很多,這里也就不說了,要說的是在這次運用struts標簽過程中的一些問題和經驗。
              1、頁面action嵌套,因為是分工合作,三個人分別完成各自模塊,最后進行組裝。所以避免不了,一個頁面會有多個action組成。那么怎么運用struts標簽進行action組裝呢?
          <bean:include id="liststeptype" page="/step/steptype.html?event=listStepType" />
          <bean:write name="liststeptype" filter="false"/>
              先利用include創建一個id為liststeptype的模塊,page的值為指定action的url,再通過write將其顯示出來,filter如果為ture則顯示頁面源碼,為false顯示html頁面。
             
              2、Date型數據的頁面顯示,理想狀態是顯示為“YYYY-mm-DD”,如果是formbean中的屬性還好辦一點,直接在進行數據類型轉換的時候就 把樣式給format了,但是如果是對象列表呢,通過循環標簽顯示,沒法利用struts標簽調用format函數(struts標簽不支持此功能),對 此想個多個方案,最高的一個是重寫Date的toString方法,最簡單的是利用bean:write 中的format的屬性(這是郁悶了很久后無意中發現的)。
              3、formbean中不能接收Object類型的屬性,這點著實郁悶了很久,所以遇到需要用到Object類型的數據時只能再手動轉換。
              4、復選框的運用。struts標簽中,到系統完成都沒能很好運用的便是復選框,所以每次遇到需要用到復選框就直接使用jsp標簽替代了,簡單快速。
              5、struts標簽不能嵌套。struts標簽中的html標簽,一般來說value值為與property同名的formbean中的屬性值,當然value的值也能指定,但卻不能動態獲取,比如要想property1的value等于formbean中property2的值。對此討論除了兩個方案,使用jsp標簽或者EL表達式(即${property2})。
             6、下拉框的運用
          <html:select property="mnEquipmentId">
                  <html:option value="0">------請選擇------</html:option>
                  <html:optionsCollection property="equipmentList" label="name" value="id"/>
                    <html:options collection="equipmentList" labelProperty="name" property="id" />
          </html:select>
                把結果存入一個ArrayList作為 request 的一個屬性傳到頁面上, 這時一般用 <html:options .../> 標簽;如果數據放到 formbean里,作為屬性在頁面上取,這時一般用 <html:optionsCollection ... />


          posted on 2011-05-30 15:33 強強 閱讀(659) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 东乌| 同心县| 婺源县| 清流县| 库尔勒市| 堆龙德庆县| 进贤县| 瑞安市| 新沂市| 馆陶县| 沙河市| 岳池县| 禹州市| 广平县| 长宁县| 吴桥县| 陇川县| 通河县| 兰坪| 肥东县| 罗甸县| 柏乡县| 汝州市| 绥江县| 吉木萨尔县| 新建县| 南乐县| 南丰县| 历史| 葫芦岛市| 中山市| 崇信县| 湟中县| 南投市| 三台县| 通城县| 虎林市| 五寨县| 安仁县| 景德镇市| 玉树县|