Struts的Indexed屬性用處

          Struts的Indexed屬性用處

          banq http://www.jdon.com Mar 3, 2004 4:19 PM 回復此消息回復

          說明:這是Struts的一種高級用法,struts-el中有相關說明,這里討論在一般struts標簽庫下如何實現。

          場景:
          有一個JavaBeans:如下:


          publicclass LabelValueBean implements Serializable {
          public LabelValueBean(String label, String value) {
          this.label = label;
          this.value = value;
          }
          private String label;

          public String getLabel() {
          returnthis.label;
          }

          publicvoid setLabel(String label) {
          this.label = label;
          }

          private String value;

          public String getValue() {
          returnthis.value;
          }

          publicvoid setValue(String value) {
          this.value = value;
          }

          public String toString() {
          StringBuffer sb = new StringBuffer("LabelValueBean[");
          sb.append(this.label);
          sb.append(
          ", ");
          sb.append(this.value);
          sb.append(
          "]");
          return (sb.toString());
          }


          }



          這是非常普通的JavaBeans, 如果ActionForm是這樣:


          publicclass TestBean extends ActionForm {

          .....
          private List lvbeans = new ArrayList();

          .....




          lvbeans是LabelValueBean的集合,如此組合,如果需要在Jsp頁面中對LabelValueBean的label和value值進行增刪改,怎么辦?

          使用indexed屬性,TestBean類如下:


          publicclass TestBean extends ActionForm {

          .....
          private List lvbeans = new ArrayList();

          public TestBean(){
          //初始化數值
          lvbeans.add(new LabelValueBean(
          "1", "1"));
          lvbeans.add(new LabelValueBean(
          "2", "2"));
          lvbeans.add(new LabelValueBean(
          "3", "3"));

          }

          public LabelValueBean getLvbeans(int index) {
          return (LabelValueBean)lvbeans.get(index);
          }

          public List getLvbeans() {
          return lvbeans;
          }

          .....



          注意上述兩個get方法很重要,Jsp頁面代碼如下:





          <%@ taglib uri=
          "/WEB-INF/struts-logic.tld" prefix="logic" %>
          <%@ taglib uri=
          "/WEB-INF/struts-bean.tld" prefix="bean" %>
          <%@ taglib uri=
          "/WEB-INF/struts-html.tld" prefix="html" %>

          <jsp:useBean id=
          "test2" scope="page"class="test.TestBean"/>

          <h2>Test:
          <logic:iterate name=
          "test2" property="lvbeans" id="foo" indexId="ctr">
          <html:text name=
          "test2"
          property='<%=
          "lvbeans[" + ctr + "].label" %>' />
          </logic:iterate>

          </h2>


          這樣,運行后的輸出結果是:




          <h2>Test:

          <input type=
          "text" name="lvbeans[0].label" value="1">

          <input type=
          "text" name="lvbeans[1].label" value="2">

          <input type=
          "text" name="lvbeans[2].label" value="3">


          </h2>


          這樣修改TestBean中的List中的LabelValueBean數值了。

          posted on 2006-08-02 22:59 hardson 閱讀(295) 評論(0)  編輯  收藏 所屬分類: 開源框架


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


          網站導航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 多伦县| 天台县| 泗洪县| 凌源市| 郧西县| 桓台县| 新郑市| 衡阳县| 广饶县| 望奎县| 昭苏县| 招远市| 定襄县| 开平市| 如东县| 昌吉市| 贵溪市| 故城县| 偃师市| 韩城市| 垣曲县| 横峰县| 广州市| 清水县| 额济纳旗| 莲花县| 高州市| 墨竹工卡县| 资阳市| 周至县| 宁陕县| 六枝特区| 玉门市| 沐川县| 云安县| 定南县| 怀宁县| 台湾省| 邛崃市| 新巴尔虎左旗| 土默特左旗|