struts2 动态级联下拉框。
<%@ taglib prefix=”s” uri=”/struts-tags” %> <%@ page language=”java” errorPage=”/error.jsp” pageEncoding=”GBK” contentType=”text/html;charset=GBK” %> <html> <head> <title>Struts 2 Cool Tags - <s:doubeselect/ ></title> <s:head /> </head> <body> <h2>Doubleselect Tag Example</h2> <s:form action=”doubleSelectPost” name=”form1″> Doubleselect演示1 <s:set name=”technology” value=”#{ ‘Java’: {’Spring’, ‘Hibernate’, ‘Struts 2′}, ‘.Net’: {’Linq’, ‘ ASP.NET 2.0′}, ‘Database’: {’Oracle’, ‘SQL Server’, ‘DB2′, ‘MySQL’} }” /> <s:doubleselect label=”技术选择” list=”#technology.keySet()” name=”doubleselect1″ doubleName=”techdetail” formName=”form1″ doubleList=”#technology[top]” /> <br/><br/> Doubleselect演示数据演示2: <s:set name=”mymap” value=”#request.map”/> <s:doubleselect list=”#request.map.keySet()” doubleName=”mymap1″ name=”doubleselect2″ formName=”form1″ doubleList=”#request.map[top]” label=”Map Test” /> <s:submit/> </s:form> </body> </html>
doubleselectpost.jsp
<%@ taglib prefix=“s” uri=“/struts-tags” %> <%@ page language=“java” errorPage=“/error.jsp” pageEncoding=“GBK” contentType=“text/html;charset=GBK” %> <html> <head> <title>Struts 2 Cool Tags - <s:doubeselect/ ></title> <s:head /> </head> <body> <h2>Doubleselect Tag Example</h2> <s:form name=“form1″> <table border=“0″ cellspacing=“0″ cellpadding=“1″> <tr> <th>参数值</th> </tr> <s:iterator value=“#request.map.keySet()” status=“keys”> <tr> <td><s:property/></td> </tr> </s:iterator> </s:form> </body> </html>
3、struts.xml配置文件
<action name=”doubleSelectTest” method=”doubleSelectTest” class=”com.mobilesoft.esales.webapp.action.DoubleListAction”> <result name=”success”>test/doubleselect.jsp</result> </action> <action name=”doubleSelectPost” method=”doubleSelectPost” class=”com.mobilesoft.esales.webapp.action.DoubleListAction”> <result name=”success”>test/doubleselectpost.jsp</result> </action>
4、级联下拉框间的换行<br >问题
缺省情况下,两个级联下拉框间是换行的,Struts2采用Freemarker来做模板,可以通过修改模板来定制标签缺省的树形。参看“Struts2中Datetimepicker控件的中文问题”中的方法,也即:
- 修改struts.mxl,增加如下内容。
<constant name=”struts.serve.static” value=”false” />
<constant name=”struts.ui.templateDir” value=”struts” />
注意在struts2-core-2.0.11.jar/org/apache/struts2/default.properties中有几个与Freemarker对应的配置参数:
struts.ui.theme=xhtml struts.ui.templateDir=template #sets the default template type. Either ftl, vm, or jsp struts.ui.templateSuffix=ftl
- 覆盖缺省的静态文件
在resource目录(与WEB-INF同级或WEB-INF下)创建struts目录,并:
解压struts2-core-2.0.11.jar:/org/apache/struts2/static/ to /struts/
解压struts2-core-2.0.11.jar:/template/simple/ to /struts/simple/
解压struts2-core-2.0.11.jar:/template/xhtml/ to /struts/xhtml/
解压struts2-core-2.0.11.jar:/template/css_xhtml/ to /struts/css_xhtml/
解压struts2-core-2.0.11.jar:/template/ajax/ to /struts/ajax/
解压struts2-core-2.0.11.jar:/template/archive/ to /struts/archive
最后的目录结构如下:
struts/ – ajax/ – archive/ – css_xhtml/ – dojo/ – nls/ – src/ – animation/ – … – xml/ – struts/ – widget/ – widgets/ – niftycorners/ – simple/ – xhtml/
- 修改doubleselect的模板doubleselect.ftl
修改struts/simple/doubleselect.ftl去除其中的<br />
http://blog.csdn.net/feifmail/archive/2008/10/08/3031700.aspx