本帖最后由 netmorn 于 2010-08-09 20:03:38 编辑

解决方案 »

  1.   

    这个标签的默认值是通过headerKey和headerValue来实现的,没有selected这个属性,这个headerKey对应key,headerValue类似。
    但是你说下拉列表会多出一向,那可能是你的写法有问题,你可以把代码贴上来
      

  2.   

    其实你可以测试一下,是不是自己的语法问题,
    <s:select list="#{'':'ALL', '1':'ENABLED', '2':'DISABLED'}" name="user.status" headerKey="2" headerValue="DISABLED"></s:select>
      

  3.   

    struts2的表达式是用%取值,你可能疏忽了这点,例如headerKey="%{user.xxx}" headerValue="%{user.xxx}"
      

  4.   

    谢谢楼上的仁兄,我试过了,还是不行。
    请问大家struts2的select标签有没有类似selected这样的属性,如果没有的话那我该怎样做?
    OGNL中formbean的name属性如果是多少这个默认值就会改成相应的是吗?我现在的问题是在选择一项然后查询,能得到正确的结果,也能保留我选择那像,现在的问题就是我首次加载的时候是查询2,ENABLED这个默认查询条件,现在结果正确,就是默认值不能切换到我查询的那个条件,而是总保持是第一个选项。
    希望知道的朋友多多帮忙,谢谢!
      

  5.   

    这样啊,你的name的值只要和"" , 1 ,2 对应就行了,就是和key对应
    代码:
    1。增加全局变量 User user ;
    2。增加 user的get set方法,
    3。然后再你的查询的方法中
        user = new User();
        user.setStatus("1");
      

  6.   

    如果你的动态加载,是个对象数组,
    <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对应,就会默认选中.
      

  7.   

    一般就这两种方式
    你多试试吧,也可以买个李刚的struts2,我工作2年,这本书一直随身带
      

  8.   

    谢谢你的帮助!我已经找到错误的出处了,是我返回到页面时formBean里没有得到值,这可能是我用的公司自己写的第三方jar包有关系。另外希望对其他搜索这篇文章的人带来帮助。
      

  9.   

    <s:select list="#request.list1"  listKey="attributeName" listValue="attributeName"  value="#request.humanfs.humanProDesignation" name="hf.humanProDesignation" cssClass="SELECT_STYLE1"></s:select>
      

  10.   

    我有个简单的办法,
    <select name="type" >
      <option value="0">请选择分组</option>
      <option value="1">美工小组</option>
      <option value="2">信息安全小组</option>
      <option value="3" selected="selected">java小组</option>
     </select>至于哪个要被默认,你可以用jsp的java脚本控制一下,把String s="selected='selected'";这个s控制的要不要输出,来达到选择默认的效果