struts2下拉框实例

<s:action name="beanList" namespace="/system" id="bean" /> 
<s:select headerValue="--Please select--" headerKey="" list="#bean.testList" 
name="obj.userName" listKey="userName" listValue="userName" value="%{obj.userName.trim()}"/> 

上面就是我使用的test实例了!挨个解释吧! 

首先你要用到select,可以只使用 <s:select>标签,解释下这个标签属性: 
headerValue : 默认值value 
headerKey :    默认name 
list : 源数据 (可以在action方法里从数据库获取list) 
name : 被选数据存放的位置(这里我方在对象obj的属性值userName中<需在action中定义该对象>) 
listKey : 下拉选项的name 
listValue : 下拉选项的value 
value : 默认值 

但是一个下拉列表往往是可以重复使用的,那么我们将它单独定义到一个action中,这里我的action的namespace是system,所以如我们上面定义的<s:action>标签: 
name : 源数据名(对应get方法名) 
namespace : 我们在struts.xml中定义的name 
id : 相当于别名(在后面调用该actiond的时候直接用#号使用) 

那就这样了,我就用到这些! 

今天遇到的是什么问题呢? 就是value了. 我在form表单跳转的时候下拉列表可以很好的保存值,但是通过url跳转的时候始终无法获取值!我在页面可以打印出传递的值,可到了下拉列表就不行! 
后来试了老半天,才发现是html在eclipse中format的时候回车键被换成空格,这让我的值后面都有了空字符串,而select获取默认值又是通过key来一一对应的,所以就获取不到了,在后面加上trim属性就好了,太残念了.... 
还有获取值的方式也很郁闷,使用%来获取的,看来的确要补下ognl才行啊..... 

Java代码    收藏代码
  1. <s:select headerKey="" headerValue="请选择" name="program" tooltip="select your program" list="#{'1':'Windows','2':'Linux','3':'Java'}"/>  


Java代码    收藏代码
  1. <s:select headerKey="" headerValue="请选择" name="program" tooltip="select your program" list="{'Windows','Linux','Java'}"/>  


Java代码    收藏代码
  1. <s:action name="menuKindSelect" namespace="/admin" id="bean"></s:action>  
  2. <s:select list="#bean.mainMenuKindList" name="mainKind" listKey="mainKind" listValue="mainName" headerKey="no" headerValue="请选择"  tooltip="select your program" />  

其中:menuKindSelect是在struts.xml中定义的action 
mainMenuKindList是在action类中定义的一个List类型的值,在action中需要有相应的getter/setter方法,mainKind是一个bean,在该bean种有mainKind,mainName属性 

在action类中要获得下拉列表选中的值: 
mainKind =  request.getParameter("mainKind") ;//参数中的mainKind是中的listKey="mainKind" 的mainKind 
获得的值是:name="mainKind"的值,而listValue="mainName"只是页面显示的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值