这里创建一个web工程:strut2selectdropdown,来演示在多个复选框如何设置的默认值,整个项目的结构如下图所示:

在struts2,可以使用 <s:select> 标签来创建一个html下拉框。
<s:select label="what's your favor search engine" headerkey="-1" headervalue="select search engines" list="searchengine" name="yoursearchengine" />
产生下面的html代码...
<td class="tdlabel">
<label for="resultaction_yoursearchengine" class="label">
what's your favor search engine:
</label>
</td>
<td>
<select name="yoursearchengine" id="resultaction_yoursearchengine">
<option value="-1">select search engines</option>
<option value="google.com">google.com</option>
<option value="bing.com">bing.com</option>
<option value="yahoo.com">yahoo.com</option>
<option value="baidu.com">baidu.com</option>
</select>
</td>
其语法不需要太多解释,只不过是“headerkey”和“headervalue”。“headerkey”是一个在下拉列表中项用来表示键,而“headervalue”是在下拉列表中的项目表示值。
一个通过<s:select>创建下拉框完整的struts2的例子,和填充通过java列表,ognl列表中选择选项,保存所选的值,并在另一页显示。
action类来生成并按住选定的下拉框中选项。
selectaction.java
package com.h3.common.action;
import java.util.arraylist;
import java.util.list;
import com.opensymphony.xwork2.actionsupport;
public class selectaction extends actionsupport{
private list<string> searchengine;
private string yoursearchengine;
private string yourmonth;
public string getyourmonth() {
return yourmonth;
}
public void setyourmonth(string yourmonth) {
this.yourmonth = yourmonth;
}
public list<string> getsearchengine() {
return searchengine;
}
public void setsearchengine(list<string> searchengine) {
this.searchengine = searchengine;
}
public string getyoursearchengine() {
return yoursearchengine;
}
public void setyoursearchengine(string yoursearchengine) {
this.yoursearchengine = yoursearchengine;
}
public string getdefaultsearchengine() {
return "yahoo.com";
}
public selectaction(){
searchengine = new arraylist<string>();
searchengine.add("google.com");
searchengine.add("bing.com");
searchengine.add("yahoo.com");
searchengine.add("baidu.com");
}
public string execute() {
return success;
}
public string display() {
return none;
}
}
渲染下拉框中通过“<s:select>”标签,并填充通过java列表,ognl列表中的选择选项
select.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h1>struts 2 drop down box example</h1>
<s:form action="resultaction" namespace="/">
<h2>
<s:select label="what's your favor search engine"
headerkey="-1" headervalue="select search engines"
list="searchengine"
name="yoursearchengine"
value="defaultsearchengine" />
</h2>
<h2>
<s:select label="select a month"
headerkey="-1" headervalue="select month"
list="#{'1':'jan', '2':'feb', '3':'mar', '4':'apr'}"
name="yourmonth"
value="2" />
</h2>
<s:submit value="submit" name="submit" />
</s:form>
</body>
</html>
result.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1>struts 2 drop down box example</h1> <h2> favor search engine : <s:property value="yoursearchengine"/> </h2> <h2> selected month : <s:property value="yourmonth"/> </h2> </body> </html>
<?xml version="1.0" encoding="utf-8" ?>
<!doctype struts public
"-//apache software foundation//dtd struts configuration 2.0//en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devmode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="selectaction"
class="com.h3.common.action.selectaction" method="display">
<result name="none">/pages/select.jsp</result>
</action>
<action name="resultaction" class="com.h3.common.action.selectaction">
<result name="success">/pages/result.jsp</result>
</action>
</package>
</struts>
http://localhost:8080/strut2selectdropdown/selectaction.action
http://localhost:8080/strut2selectdropdown/resultaction.action