<!---------------begin 以下部分转自http://icemoon.javaeye.com/blog/108592------------>
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里没法动态取值,导致没法用这对搭档来满足我的需求。于是乎找到了下面的解决方案,拿出来共享,希望能给初学者带来帮助。
<!---------------begin 以下部分转自http://blog.csdn.net/shangyu79/archive/2007/09/13/1783473.aspx------------>
<%@ 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>
<head>
<title>student select list</title>
</head>
<body>
<s:form name="form1" action="stuValueselectActionTest">
<s:select
label="选择学生"
list="liststu"
name="selectStudent"
listKey="userid"
listValue="username"
emptyOption="false"
value="3" //这里的value值对应于listKey中的userid,即为默认值,从数据库中取到某学生的值,赋予value即可
/>
<s:submit/>
</s:form>
<!----------------------转载结束---------------------------------------------------->