グループ化されたオブジェクトのリストを ArrayList に持っていて、それを html の順序付けされていないリストとして jsp に表示したいと考えています。説明は添付画像をご覧ください。
これまでのところ、以下のように Java POJO クラスを作成しました。
public class CountData {
private String country;
private String state;
private String city;
private String mfc;
private int count;
public CountData(String country, String state, String city, String mfc, int count) {
this.country = country;
this.state = state;
this.city = city;
this.mfc = mfc;
this.count = count;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
// Other getters ans setters
}
オブジェクトをグループ化されたリストに格納するためのクラスも作成しました。このクラスは、テスト用に作成されたものです。実際の例では、SQL ステートメントの戻りによってグループから生成されます。実際の例では、データは異なり、より複雑であるため、いくつかの簡単なサンプル データで説明すると考えられます。グループ化は任意の順序で行うことができます。
public class CountList {
private List<CountData> dataList;
public CountList() {
if (this.dataList == null) {
this.dataList = new ArrayList<CountData>();
}
//Sorted Grouped List
this.dataList.add(new CountData("China", "State3", "City3", "Female", 40));
this.dataList.add(new CountData("India", "State1", "City1", "Female", 10));
this.dataList.add(new CountData("India", "State1", "City1 ", "Male", 40));
this.dataList.add(new CountData("India", "State2", "City2", "Female", 25));
this.dataList.add(new CountData("India", "State2", "City2", "Male", 30));
this.dataList.add(new CountData("USA", "IL", "Chicago", "Female", 20));
this.dataList.add(new CountData("USA", "IL", "Chicago", "Male", 50));
this.dataList.add(new CountData("USA ", "IL", "Schaumburg", "Female", 17));
this.dataList.add(new CountData("USA", "IL", "Schaumburg", "Male", 30));
this.dataList.add(new CountData("USA", "WI", "Milwaukee", "Children", 10));
this.dataList.add(new CountData("USA", "WI", "Milwaukee", "Female", 25));
this.dataList.add(new CountData("USA", "WI", "Milwaukee", "Male", 40));
this.dataList.add(new CountData("USA", "WI", "Madison", "Female", 18));
this.dataList.add(new CountData("USA", "WI", "Madison", "Male", 30));
}
public List<CountData> getDataList() {
return dataList;
}
public void setDataList(List<CountData> dataList) {
this.dataList = dataList;
}
}
今、私はそれを次のような HTML 順序付きリストに変換したいと思います:
<ul>
<li>China (40)
<ul>
<li>State3 (40)
<ul>
<li>City3 (40)
<ul>
<li>Female (40)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>India (115)
<ul>
<li>State1 (50)
<ul>
<li>City1 (50)
<ul>
<li>Female (10)</li>
<li>Male (40)</li>
</ul>
</li>
</ul>
</li>
<li>State2 (65)
<ul>
<li>City2 (65)
<ul>
<li>Female (25)</li>
<li>Male (30)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>USA (245)
<ul>
<li>IL (117)
<ul>
<li>Chicago (70)
<ul>
<li>Female (20)</li>
<li>Male (50)</li>
</ul>
</li>
<li>Schaumburg (47)
<ul>
<li>Female (17)</li>
<li>Male (30)</li>
</ul>
</li>
</ul>
</li>
<li>WI (128)
<ul>
<li>Milwaukee (75)
<ul>
<li>Children (10)</li>
<li>Female (25)</li>
<li>Male (40)</li>
</ul>
</li>
<li>Madison (48)
<ul>
<li>Female (18)</li>
<li>Male (30)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
これを達成するための最良の方法は何でしょう。サンプルコードは役に立ちます。私は子供の取得に問題があり、各親の数を取得しています。実際の例では、データは異なり、より複雑であるため、いくつかの簡単なサンプル データで説明すると考えられます。グループ化は任意の順序で行うことができます。
ありがとうございました。