struts2 select标签默认值问题
本帖最后由 netmorn 于 2010-08-09 20:03:38 编辑
大家好,
如题,在网上找了好多,都不符合我的要求!
<s:select list="#{'':'ALL', '1':'ENABLED', '2':'DISABLED'}" name="user.status"></s:select>
我设置value的值,如果固定的话,那我选择其他项查询结果没问题,但select标签显示的是value所对应的值。如果我设置为动态加载,那我总是得到第一项(ALL).
我设置headerKey和headerValue的值,那我的下拉列表里会多出一项,我设置成动态的,那我还是得到第一项(ALL).
我记得html的select标签中有一个selected属性,如果在options某一项后边加上的话,那这个项就是默认值!
请问struts2有没有这样的属性,如果没有的话我该怎么做?
谢谢大家!
------解决方案--------------------这个标签的默认值是通过headerKey和headerValue来实现的,没有selected这个属性,这个headerKey对应key,headerValue类似。
但是你说下拉列表会多出一向,那可能是你的写法有问题,你可以把代码贴上来
------解决方案--------------------其实你可以测试一下,是不是自己的语法问题,
<s:select list="#{'':'ALL', '1':'ENABLED', '2':'DISABLED'}" name="user.status" headerKey="2" headerValue="DISABLED"></s:select>
------解决方案--------------------struts2的表达式是用%取值,你可能疏忽了这点,例如headerKey="%{user.xxx}" headerValue="%{user.xxx}"
------解决方案--------------------
其中有LIST属性
------解决方案--------------------这样啊,你的name的值只要和"" , 1 ,2 对应就行了,就是和key对应
代码:
1。增加全局变量 User user ;
2。增加 user的get set方法,
3。然后再你的查询的方法中
user = new User();
user.setStatus("1");
------解决方案--------------------如果你的动态加载,是个对象数组,
<s:select name="status" list="userList" listKey="id" listValue="userName"
headerKey="="%{user.id}" headerValue="%{user.userName}"></s:select>
name="status" 这个对应后台的setStatus(),注入的值为user对象的id,后台拿到这个id,你可以拿到相应的user对象,给这个user对象增加getUser()方法,然后返回页面的时候,headerKey和headerValue的值和userList对应,就会默认选中.
------解决方案--------------------一般就这两种方式
你多试试吧,也可以买个李刚的struts2,我工作2年,这本书一直随身带