OA项目之在SSH如下如何实现Select跟Radio

来源:互联网 发布:淘宝网男凉鞋 编辑:程序博客网 时间:2024/06/14 21:17

1.今天学习了在SSH下如何实现页面前端的Select和Radio,个人感觉很重要在此做笔记,很多地方可以用到。

2.首先效果如下利用struts2的标签来做,首先来看Select:




<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>
解释:

 list:      每一个Select标签都有一个list 属性,代表的是后台我们已经准备的DepartmentList(部门的集合,具体详见前一篇的DepartmentAction中的list方法),加上#号的原因,是因为我们在Action中是将部门集合放在值栈的Map中保存的.

listKey:    当我们在下拉列表选择了一个部门然后需要提交保存的时候,我们前台传递的其实是id号,所以listKey就是代表的部门id.(简称是用来提交的)

listValue: 我们页面看到的其实是部门的name属性,所以listValue就是代表页面是通过什么来显示的很明显是通过name来显示

(简称用来显示的)

name:      这个属性大家都清楚,是标志这个标签的,服务器端需要在后台得到他的值,所以在DepartmentAction中必须有                 departmentId这个属性且需要提供 getter和setter 方法

cssClass:为了保存原来的样式

headerKey:如上图默认是"请选择部门",key就是这个默认值得id这里没有所以为空

headerValue:Select的默认值


3.下面是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>

解释:

name:跟上面一样对应着Action中的属性

list:   构建一个map#{‘男’:’男‘,‘女’:’女‘},其中第一个男为key第二个男士value也就是说提交的为男,在页面显示的也是男,跟上            面的Select一样,当key和value一样的时候           我们就可以直接简写为上面的那个代码,更简洁。女同上


附注

EL跟OGNL的写法区别(因为在JSP中经常出现${},%{},#{},必须对ValueStack熟悉):


EL表达式 JSP中     ${表达式}



OGNL表达式Strtus2中(Struts2的自定义标签中、struts.xml...)
                        Struts2的自定义标签的属性值中使用OGNL用该用%{表达式}   

                       在struts.xml中如果如果需要使用OGNL应该用${表达式}

语法:


                %{name}              代表会优先从值栈中的对象栈中取得name属性
                %{#name}            代表会从值栈中的Map中取得name属性

                %{#user.name}    代表从map中user属性的取得那么属性

                #{'k':'v', 'k2':'v2'}   这是代表构建一个Map

                {'e1', 'e2'}             这代表构建一个list

   



4 0
原创粉丝点击