Struts2中radio标签使用示例

来源:互联网 发布:c语言0|1 编辑:程序博客网 时间:2024/05/16 00:51

实例:

  表单中的性别选项(radio),界面中需要它有个默认值。

实现方法一:
    1为sexs集合建立一个bean类(只需要提供Map的get方法):
      public class Sexs{
         publicMap<String,String> getSexs(){
            Map<String,String> sexs
 = newHashMap<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="男"/>
<labelfor="checkcode_男">男</label>
<input type="radio" id="checkcode_女"value="女"/>
<labelfor="checkcode_女">女</label>
这样写很方便,但是不建议用这种方法,因为这样生成的value值中有中文,
可能会出现乱码问题。


radio标签属性说明:
   name属性:与其他标签的作用一样,是与Action组件中属性的关联。
   list属性:生成选项时所用的集合,可以是数组或者集合,如果是Map,则
         会自动填充键值对,例如方法一中显示的是男和女,提交时传递的
         是m和f。如果是List,则还需要为其提供键列表和值列
表,如方法二中所示。
   listKey属性:指定键列表
   listValue属性:指定值列表

复选框(checkboxlist),下拉列表(select)等标签都有这些属性,用法相似。