struts2 动态级联下拉框



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