zoukankan      html  css  js  c++  java
  • struts2中s:select标签的使用

    1.第一个例子:

    <s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select>

    2.第二个例子:

    <s:select list="#{1:'aa',2:'bb',3:'cc'}"  label="abc" listKey="key" listValue="value"  headerKey="0" headerValue="aabb">

    3.第三个例子:

    <%

    HashMap map = new LinkedHashMap();

    map.put(1,"aaa");map.put(2,"bbb");

    map.put(3,"ccc");

    request.setAttribute("map",map);

    request.setAttribute("aa","2");

    %>

    <s:select list="#request.map"  label="abc" listKey="key" listValue="value" value="#request.aa"  headerKey="0" headerValue="aabb"></s:select>

    摘抄自 http://www.cnblogs.com/modou/articles/1326683.html

     -----------------------------------------------------------------------------------------------------------------------------------------------

    struts2的select标签中,常用的有以下几个属性:

    (1)struts2中的select 标签中,必须设置的属性只有一个,即是list。

    (2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。如:

    xml 代码
    <s:select   name="geElement.childType" list="childTypeList" listKey="key"  listValue="value" headerKey="0" headerValue="--请选择子类型--"/>   
    其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1。

    (3)list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。

    (4)listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option。

    (5)name属性:即是表单中select的名称。

    使用例子:

         比如在做人员信息管理系统中,需要设置人员的民族、籍贯等信息,而这些信息一把不需要用户手动输入,而是通过下拉框进行选择,那么使用struts2的select标签应该如何实现呢,好,请看下面: 
        在Action类中,添加一个成员,String nationId;民族Id,设置getter和setter方法,添加一个Map类型的成员变量,Map nationMap;里面存放民族Id和对应的民族名称,设置getter和setter方法,在execute方法中,添加如下代码: 
        nationMap.put("1","汉族"); 
        nationMap.put("2","苗族"); 
         然后,在jsp页面中使用select标签,注意要加入标签库的引用:<% taglib uri="/struts-tags" prefix="s" %>,当然了一定要加入struts2的jar包才可以哦

       使用标签:   <s:select name="nationId" list="nationMap"></s:select> 
    这样就可以了,简单吧! 
       上面list里面用的是Map类型的变量,其实list里面也可以是List类型的变量,那么如果是List类型的变量,select标签就需要使用这种形式 
          <s:select name="nationId" list="nations" key="name" value="id"/> 
       其中nations是List类型的变量,里面封装了一个Bean,Bean里面定义了两个变量,一个是id,一个是name。这样就可以了。

    -----------------------------------------------------------------------------------------------------------------------------------------------

    今天通过url传值,却发现select不能获取传递过去的值,让我很郁闷,搞了半天才弄明白怎么回事!趁着这股劲说说select的用法吧!

    首先上官方介绍:
    地址 : select tag reference

    <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才行啊.....

  • 相关阅读:
    085 Maximal Rectangle 最大矩形
    084 Largest Rectangle in Histogram 柱状图中最大的矩形
    083 Remove Duplicates from Sorted List 有序链表中删除重复的结点
    082 Remove Duplicates from Sorted List II 有序的链表删除重复的结点 II
    081 Search in Rotated Sorted Array II 搜索旋转排序数组 ||
    080 Remove Duplicates from Sorted Array II 从排序阵列中删除重复 II
    079 Word Search 单词搜索
    078 Subsets 子集
    bzoj2326: [HNOI2011]数学作业
    bzoj2152: 聪聪可可
  • 原文地址:https://www.cnblogs.com/564085446java/p/3857338.html
Copyright © 2011-2022 走看看