这里创建一个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