Kalishavali Shaik
Kalishavali Shaik

Reputation: 21

ArrayList of ArrayList in Select Tag in Struts2

When I am trying to display <select> tag with list contains nested ArrayLists.

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

districts array list will be like this [ [0,"one"],[1,"two"],[2,"three"] ]

when I am using Struts 2 <s:select> tag like below:

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

it will generating code like this :

<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>

But I want 01,02,03... as value names as to display in select tag.

My Action Will be Like This:

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;
    }*/

    

}

and struts.xml is like this:

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

Here is my Struts2 select tag:

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

I want the result like this:

<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>

Upvotes: 1

Views: 1022

Answers (1)

Roman C
Roman C

Reputation: 1

Make a new map like

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

And the <s:select> tag

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

Learn more about struts <s:select> tag:

Render an HTML input tag of type select.

Upvotes: 1

Related Questions