在Struts2,<s:updownselect>標(biāo)簽用于創(chuàng)建一個(gè)帶有按鈕的HTML選擇組件向上或向下移動(dòng)在選擇組件的選項(xiàng)。當(dāng)提交表單時(shí),所有的選擇方案將提交在它們的排列順序。
這里創(chuàng)建一個(gè)Web工程:strut2updownselect,來(lái)演示在多個(gè)復(fù)選框如何設(shè)置的默認(rèn)值,整個(gè)項(xiàng)目的結(jié)構(gòu)如下圖所示:
<s:updownselect> 示例
<s:updownselect list="#{'KFC':'KFC', 'McDonald':'McDonald', 'Burger King':'Burger King', 'Pizza Hut':'Pizza Hut', 'Fat Boy King':'Fat Boy King'}" name="favFastFood" headerKey="-1" headerValue="--- Please Order ---" size="7" />
產(chǎn)生下面的HTML代碼,選擇組件,按鈕和JavaScript在選擇組件向下移動(dòng)的選項(xiàng)。 (默認(rèn)的XHTML主題)
<tr> <td class="tdLabel"></td> <td><script type="text/javascript" src="/Struts2Example/struts/optiontransferselect.js"> </script> <table> <tr><td> <select name="favFastFood" size="7" id="resultAction_favFastFood" multiple="multiple"> <option value="-1">--- Please Order ---</option> <option value="KFC">KFC</option> <option value="McDonald">McDonald</option> <option value="Burger King">Burger King</option> <option value="Pizza Hut">Pizza Hut</option> <option value="Fat Boy King">Fat Boy King</option> </select> <input type="hidden" id="__multiselect_resultAction_favFastFood" name="__multiselect_favFastFood" value="" /> </td></tr> <tr><td> <input type="button" value="^" onclick=" moveOptionUp(document.getElementById('resultAction_favFastFood'), 'key', '-1');" /> <input type="button" value="v" onclick=" moveOptionDown(document.getElementById('resultAction_favFastFood'), 'key', '-1');" /> <input type="button" value="*" onclick="selectAllOptionsExceptSome( document.getElementById('resultAction_favFastFood'), 'key', '-1');" /> </td></tr> </table></td> </tr> <script type="text/javascript"> var containingForm = document.getElementById("resultAction"); StrutsUtils.addEventListener(containingForm, "submit", function(evt) { var updownselectObj = document.getElementById("resultAction_favFastFood"); selectAllOptionsExceptSome(updownselectObj, "key", "-1"); }, true); </script>
在一個(gè)完整的全面<s:updownselect>標(biāo)簽例子來(lái)說(shuō)明如何使用OGNL和Java列出的數(shù)據(jù)填充到上下按鈕選擇列表。
Action類(lèi)來(lái)生成和存儲(chǔ)選擇選項(xiàng)。
UpDownSelectAction.java
package com.yiibai.common.action; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; public class UpDownSelectAction extends ActionSupport{ private List<String> moviesList = new ArrayList<String>(); private String favMovie; private String favFastFood; public UpDownSelectAction(){ moviesList.add("Spider Man"); moviesList.add("Matrix"); moviesList.add("Super Man"); moviesList.add("Dark Knight"); moviesList.add("BraveHeart"); moviesList.add("Ultraman"); } public String getFavFastFood() { return favFastFood; } public void setFavFastFood(String favFastFood) { this.favFastFood = favFastFood; } public List<String> getMoviesList() { return moviesList; } public void setMoviesList(List<String> moviesList) { this.moviesList = moviesList; } public String getFavMovie() { return favMovie; } public void setFavMovie(String favMovie) { this.favMovie = favMovie; } public String execute() throws Exception{ return SUCCESS; } public String display() { return NONE; } }
通過(guò)“<s:updownselect>”渲染上下按鈕選擇組件標(biāo)簽。
updownselect.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <s:head /> </head> <body> <h1>Struts 2 updownselect example</h1> <s:form action="resultAction" namespace="/" method="POST" > <s:updownselect list="#{'KFC':'KFC', 'McDonald':'McDonald', 'Burger King':'Burger King', 'Pizza Hut':'Pizza Hut', 'Fat Boy King':'Fat Boy King'}" name="favFastFood" headerKey="-1" headerValue="--- Please Order ---" size="7" /> <s:updownselect list="moviesList" name="favMovie" headerKey="-1" headerValue="--- Please Order ---" size="10" moveUpLabel="Move Up" moveDownLabel="Move Down" selectAllLabel="Select All" /> <s:submit value="submit" name="submit" /> </s:form> </body> </html>
result.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1>Struts 2 updownselect example</h1> <h2> Favor fast food : <s:property value="favFastFood"/> </h2> <h2> Favor movies : <s:property value="favMovie"/> </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="updownSelectAction" class="com.yiibai.common.action.UpDownSelectAction" method="display"> <result name="none">pages/updownselect.jsp</result> </action> <action name="resultAction" class="com.yiibai.common.action.UpDownSelectAction" > <result name="success">pages/result.jsp</result> </action> </package> </struts>
http://localhost:8080/Struts2Example/updownSelectAction.action
選擇選項(xiàng),將其向上或向下。
當(dāng)提交后,所有的選項(xiàng)都將在它們的排列順序提交。