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

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

   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值