1 静态生成
[html] view plaincopyprint?
- <s:select name="user.sex" list="#{'0':'男','1':'女'}" label="性别" headerKey="" headerValue="请选择性别"></s:select>
注解:这里从页面来静态(也就是在页面中写死啦)构造下拉选项,关键点是list="#{'0':'男','1':'女'}" 通过它实现的select的两个option 。headerKey指定缺省的选项"key",headerValue指定缺省的选项"value"。
2.设置下拉框数据源
[html] view plaincopyprint?
- <%
- java.util.HashMap map = new java.util.LinkedHashMap();
- map.put(1, "aaa");
- map.put(2, "bbb");
- map.put(3, "ccc");
- request.setAttribute("map", map);
- request.setAttribute("aa", "2");
- %>
[html] view plaincopyprint?
- <s:select list="#request.map" label="abc" listKey="key" listValue="value" value="#request.aa" headerKey="0" headerValue="aabb">
- </s:select>
value的值设置为了2,所以初始化下拉框时,会自动选择key值为2的选项
3.action传递list过来
[java] view plaincopyprint?
- public class Program implements Serializable {
- /** serialVersionUID */
- private static final long serialVersionUID = 1L;
- private int programid;
- private String programName;
- public int getProgramid() {
- return programid;
- }
- public void setProgramid(int programid) {
- this.programid = programid;
- }
- public String getProgramName() {
- return programName;
- }
- public void setProgramName(String programName) {
- this.programName = programName;
- }
- }
action
[java] view plaincopyprint?
- xxxAction extends extends ActionSupport {
- private List<Program> programs ;//list集合
- public List<Program> getPrograms() {
- return programs;
- }
- public void setPrograms(List<Program> programs) {
- this.programs = programs;
- }
- }
jsp页面
[html] view plaincopyprint?
- <s:select list="programs " listValue="programName " listKey="programid " name="program" id="program"
- headerKey="0l" headerValue="" >
- </s:select>
listKey说明下拉框的key值对应 programid字段,listValue说明下拉框的显示部分对应programName字段
例子:
<s:select id="caAvApplycurrencyTypeCn" name="caAvApply.currencyTypeCn" list="#request.currencyTypeCnTypeList" listKey="dictValue" listValue="dictName" headerKey="" headerValue="请选择" value="caAvApply.currencyTypeCn"></s:select>
id,name就不用说了,list就是你要从列表中迭代并显示出来的东西,listKey相当于html_select中option的值,而listValue就是在下拉框中显示的内容,headerKey和headerValue就是选择之前的缺省值,就只指在这项数据并没有被选择的情况下,如果是在修改页面中,可能这个下拉框本身已经被赋值了,想显示出之前已存的值,只要将value设置成与name相对应的就可以,相当于html_select中option的值被selected一样。
实例:
<s:select list="#{'0':'不开通','1':'开通'}" id="status" name="e.status" style="width:95px;"
cssClass="input-small" listKey="key" listValue="value" value="e.status"/>