首页 > 代码库 > 浅谈struts2标签中的2个很常用的标签的用法(radio和select)

浅谈struts2标签中的2个很常用的标签的用法(radio和select)

1.如图所示我们需要在前台的页面通过radio和select将对应的数据库中的数据显示到选项当中,这也是我们做项目中经常需要做的,动态的显示,而不是静态的显示。


   首先我们需要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码如下:

<input type="RADIO" name="sex" value=http://www.mamicode.com/"男" id="male"/>>
<s:radio name="gender" list="%{ {'男', '女'} }"></s:radio>

   这样写因为在表单里面,我们都需要改成struts2的标签形式,用标签写更加简单方便,在struts2标签中凡是有很多选项的比如radio,select,checkbox等都会有一个list属性,用来表示选项的集合,还有listkey,listvalue,这2个属性值,listkey就代表提交给服务器的值,可能是1,可能是2,等等,listvalue代表是显示的值,比如上面的代码,我们将男女放在list中,listkey提交给服务器的值可能是1,2,3.。。。。,然后通过listvalue来指定显示在页面的值,当然如果我们指定list为map,那么listkey,listvalue就不用写了,他会自动调用map的key作为listkey,map的value作为listvalue,详细代码如下(radio的)使用的OGNL表达式构建一个map,相比较上面的2行代码这个就很简单方便了。


2.下面我们看下select中的选项如何动态的通过struts2标签获取:

   先看下原始的静态获取方式:

                            <select name="departmentId" class="SelectStyle">
                                <option value=http://www.mamicode.com/"0" selected="selected">请选择部门>下面我们通过struts2标签来做代码如下:

                            <s:select name="departmentId" cssClass="SelectStyle"
                            	list="#departmentList" listKey="id" listValue=http://www.mamicode.com/"name">解释下其中属性的意思:name是你提交给服务器端的参数意思是你通过name这个属性提交的那么在服务器端也需要一个name这个属性并且能够获取,cssClass是样式,list对应的数据库的选项集合,listkey是通过id获取选listvalue是在页面显示对象的name属性,headerkey是默认选项的id因为在数据库没有所以传一个null,headervalue指的是默认选中的值。