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就代表提交给server的值,可能是1,可能是2,等等,listvalue代表是显示的值。比方上面的代码,我们将男女放在list中。listkey提交给server的值可能是1,2,3.。。。。
,然后通过listvalue来指定显示在页面的值,当然假设我们指定list为map。那么listkey,listvalue就不用写了,他会自己主动调用map的key作为listkey,map的value作为listvalue,具体代码例如以下(radio的)使用的OGNL表达式构建一个map。相比較上面的2行代码这个就非常easy方便了。
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是你提交给server端的參数意思是你通过name这个属性提交的那么在server端也须要一个name这个属性而且可以获取。cssClass是样式,list相应的数据库的选项集合,listkey是通过id获取选listvalue是在页面显示对象的name属性。headerkey是默认选项的id由于在数据库没有所以传一个null。headervalue指的是默认选中的值。