1. 程式人生 > >Struts2中radio標籤使用示例

Struts2中radio標籤使用示例

   表單中的性別選項(radio),介面中需要它有個預設值。

實現方法一:
    1 為sexs集合建立一個bean類(只需要提供Map的get方法):
        public class Sexs{
            public Map<String,String> getSexs(){
                Map<String,String>  sexs
 = new HashMap<String,String>(2);
                sexs.put("m","男");
                sexs.put("f","女");
            }
        }
    2 在介面中使用<s:bean name="Sexs" var="bean" />獲得一個Sexs例項
       此時,在radio標籤中就可以使用bean了
        <s:radio name="user.sex" list="#bean.sexs" value="'f'">
</s:radio>
        注意:value屬性的值是Map中的key,如果key是數字型別的可以寫成:value="1", 如果不是,要寫成value="'f'"(指出是字串)。

實現方法二:
    1 為單個的sex元素建立一個bean類:
        Public class Sex{
            Private String key;
            Private String value;
            getters;
}
    2 建立list集合,可以放到Action元件中,也可以再定義一個bean,只要
    能保證在jsp檔案需要的時候能得到它,並且有值。
        Public class Sexs{
            Private List<Sex> list = new ArrayList<Sex>();
            Public List<Sex> getList(){
                list.add(new Sex("m","男"));
list.add(new Sex("f","女"));
}
}

    3在jsp檔案中使用<s:bean name="Sexs" var="bean"/>獲得Sexs例項
    在radio標籤中可以使用
    <s:radio name="user.sex" list="#bean.list" listKey="key"
listValue="value" value="'f'">
    </s:radio>


實現方法三 :
直接用陣列當選項列表,例如:
    <s:radio list="{'男', '女'}"></s:radio>
這樣寫不再需要為其提供listKey和listValue,在轉換成HTML文件時會自動
變為
<input type="radio" id="checkcode_男" value="男"/>
<label for="checkcode_男">男</label>
<input type="radio" id="checkcode_女" value="女"/>
<label for="checkcode_女">女</label>
這樣寫很方便,但是不建議用這種方法,因為這樣生成的value值中有中文,
可能會出現亂碼問題。


radio標籤屬性說明:
    name屬性:與其他標籤的作用一樣,是與Action元件中屬性的關聯。
    list屬性:生成選項時所用的集合,可以是陣列或者集合,如果是Map,則
            會自動填充鍵值對,例如方法一中顯示的是男和女,提交時傳遞的
            是m和f。如果是List,則還需要為其提供鍵列表和值列
表,如方法二中所示。
    listKey屬性:指定鍵列表
    listValue屬性:指定值列表

複選框(checkboxlist),下拉列表(select)等標籤都有這些屬性,用法相似。