
struts2的select标签中,常用的有以下几个属性:
(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。
(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, 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时间不是很久,对于struts2的标签并不是很熟悉,导致被显示默认值的小问题困扰了好久。开始用headerKey和headerValue来显示,但需要修改在将下拉框中默认的值传回后台时发现它传的是headerValue,由于headerKey里没法动态取值,导致没法用这对搭档来满足我的需求。于是乎找到了下面的解决方案,拿出来共享,希望能给初学者带来帮助。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
< %@ taglib prefix="s" uri="/struts-tags" %>
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html>
list="liststu" name="selectStudent" listKey="userid" listValue="username" emptyOption="false" value="3" //这里的value值对应于listKey中的userid,即为默认值,从数据库中取到某学生的值,赋予value即可 />
见我另外的博客:http://maoyifa100.iteye.com/admin/blogs/1775105
Html代码
1 3 name="" 4 value="" 5 headerKey="" 6 headerValue="" 7 listKey="" 8 listValue="" 9/> (1)其中 list是必须具备的属性 list中可以存储map list set类型的数据 list 属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的 option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。 (2)如果list为空headKey 和headValue不能为空.listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option (3)name属性:即是表单中select的名称。 下面具体解释下各个属性的含义。 headerValue : 默认值value headerKey : 默认name list : 源数据 (可以在action方法里从数据库获取list) name : 被选数据存放的位置(这里我方在对象obj的属性值userName中<需在action中定义该对象>) listKey : 下拉选项的name listValue : 下拉选项的value value : 默认值 1.第一个例子: Html代码 10 2.第二个例子: Html代码 11 3.第三个例子: Html代码 12<% 13java.util.HashMap map = new java.util.LinkedHashMap(); 14map.put(1,"aaa"); 15map.put(2,"bbb"); 16map.put(3,"ccc"); 17request.setAttribute("map",map); 18request.setAttribute("aa 19%> 20 22s:select 23> headerKey headerValue 为设置缺省值 4.第四个例子 Java代码 24public class Program implements Serializable { 25 26 private static final long serialVersionUID = 1L; 27 private int programid; 28 private String programName; 29 public int getProgramid() { 30 return programid; 31 } 32 public void setProgramid(int programid) { 33 this.programid = programid; 34 } 35 public String getProgramName() { 36 return programName; 37 } 38 public void setProgramName(String programName) { 39 this.programName = programName; 40 } 41} 42 43在 xxx extends extends ActionSupport { 44 private List programs ; 45 public List getPrograms() { 46 return programs; 47 } 48 public void setPrograms(List programs) { 49 this.programs = programs; 50 } 51} Html代码 52在jsp页面 53 55 > list的值为在action里面的list,listValue的值为 value对应bean里面的字段programName listKey的值为 Html代码 56如果可以在jsp页面上写死的话,可以如下: 57 58该代码运行结果:默认显示的是“女”。 59 60如果默认项是从后台传到前台的,可以如下: 61jsp: 62 63action: private String sex; 65sex属性有get/set方法。 66在业务方法中设置sex = "2";select会默认选中。
