struts2 radio 标签

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Sun_XP_1988/archive/2011/01/21/6157871.aspx

实例:

   表单中的性别选项(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)等标签都有这些属性,用法相似。

猜你喜欢

转载自kaobian.iteye.com/blog/1067423