2016-03-04 35 views
2

当我试图显示带有列表的select标签包含嵌套的Arraylists时。ArrayList在Struts2的Select Tag中的ArrayList

ArrayList<ArrayList<String>> districts=new ArrayList<ArrayList<String>>(); 

区阵列列表将是这样[ [0,"one"],[1,"two"],[2,"three"] ]

当我使用的Struts2选择标签象下面这样:

这样 ​​

它将生成代码:

<select name="" id=""> 
    <option value="-1">Select State</option> 
    <option value="[12, Anantapur]">[12, Anantapur]</option> 
    <option value="[10, Chittoor]">[10, Chittoor]</option> 
    <option value="[04, East Godavari]">[04, East Godavari]</option> 
    <option value="[07, Guntur]">[07, Guntur]</option> 
    <option value="[11, Kadapa]">[11, Kadapa]</option> 
    <option value="[06, Krishna]">[06, Krishna]</option> 
    <option value="[13, Kurnool]">[13, Kurnool]</option> 
    <option value="[08, Prakasam]">[08, Prakasam]</option> 
    <option value="[09, S.P.S Nellore]">[09, S.P.S Nellore]</option> 
    <option value="[01, Srikakulam]">[01, Srikakulam]</option> 
    <option value="[03, Visakhapatnam]">[03, Visakhapatnam]</option> 
    <option value="[02, Vizianagaram]">[02, Vizianagaram]</option> 
    <option value="[05, West Godavari]">[05, West Godavari]</option> 
</select> 

但我想01,02,03 ...作为值名称显示在选择标签。

我的行动会是这样

package authentication; 

import java.util.ArrayList; 

import Testing.Database_Access; 

import com.opensymphony.xwork2.ActionSupport; 

public class Reports extends ActionSupport{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    //private String district; 
    private ArrayList<ArrayList<String>> districts; 

    public String dbDistricts(){ 
     districts=Database_Access.getDbDistricts("01"); 
     return SUCCESS; 

    } 

    public ArrayList<ArrayList<String>> getDistricts() { 
     return districts; 
    } 

    public void setDistricts(ArrayList<ArrayList<String>> districts) { 
     this.districts = districts; 
    } 



    /*public String getDefaultDistrict() { 
     return "Select State"; 
    } 

    public void setDistrict(String district) { 
     this.district = district; 
    }*/ 



} 

struts.xml是这样的:

<action name="Reports" class="authentication.Reports" method="dbDistricts"> 
    <result name="success">/Reports.jsp</result> 
</action> 

这里是我的Struts2的select标签:

​​

我想这样的结果:

<select name="" id=""> 
     <option value="-1">Select State</option> 
     <option value="12"> Anantapur</option> 
     <option value="10"> Chittoor</option> 
     <option value="04"> East Godavari</option> 
     <option value="07">Guntur</option> 
     <option value="11">Kadapa</option> 
     <option value="06"> Krishna</option> 
     <option value="13">Kurnool</option> 
     <option value="08">Prakasam</option> 
     <option value="09"> S.P.S Nellore</option> 
     <option value="01"> Srikakulam</option> 
     <option value="03">Visakhapatnam</option> 
     <option value="02"> Vizianagaram</option> 
     <option value="05">West Godavari</option> 
    </select> 
+1

为什么列表?使用地图。 –

+0

阅读[this](http://stackoverflow.com/a/26525161/573032)。 –

+0

谢谢sooooooooooooooooooooooooooooooooooooooooooo much .................. yaaa我在这里成功...................... ...终于它通过使用地图..................工作谢谢........... –

回答

1

创建一个新的地图一样

private Map<String, String> districts; 
//getter here 

与支承件选择标签

<s:select list="districts" headerKey="-1" headerValue="Select State"/> 

了解更多关于支柱select tag

渲染类型选择的HTML input标签。

+0

引用一些评论:*您的选择不会工作... *。 –

+0

@AleksandrM你是什么意思? –

+0

编辑记录保存是有原因的。 –