1.如图所示我们需要在前台的页面通过radio和select将对应的数据库中的数据显示到选项当中,这也是我们做项目中经常需要做的,动态的显示,而不是静态的显示。
首先我们需要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码如下:
<input type="RADIO" name="sex" value="男" id="male"/><label for="male">男</label> <input type="RADIO" name="sex" value="女" id="female"/><label for="female">女</label>
<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="0" selected="selected">请选择部门</option> <option value="7">┠总经理室</option> <option value="1">┠市场部</option> <option value="2"> ┠咨询部</option> <option value="3"> ┠招生部</option> <option value="4">┠教学部</option> <option value="5">┠后勤部</option> </select>
下面我们通过struts2标签来做代码如下:
<s:select name="departmentId" cssClass="SelectStyle" list="#departmentList" listKey="id" listValue="name" headerKey="" headerValue="请选择部门"> </s:select>
解释下其中属性的意思:name是你提交给服务器端的参数意思是你通过name这个属性提交的那么在服务器端也需要一个name这个属性并且能够获取,cssClass是样式,list对应的数据库的选项集合,listkey是通过id获取选listvalue是在页面显示对象的name属性,headerkey是默认选项的id因为在数据库没有所以传一个null,headervalue指的是默认选中的值。
浅谈struts2标签中的2个很常用的标签的用法(radio和select),布布扣,bubuko.com