2013-03-21 151 views
1

在我的Spring Controller中,我有一組方向。我想使用該數組,或者將其放入列表中,然後在JSP頁面上填充有序列表。從Spring MVC列表中填充HTML排序列表屬性

例如,我已經在我的控制器的列表屬性中填充了我的JSP頁面上的下拉列表。

代碼...

控制器

ResultSet result = select.executeQuery("SELECT DISTINCT make FROM data ORDER BY make"); 
List<LabelValueModel> dropDownItems = new ArrayList<LabelValueModel>(); 
while (result.next()) { 
     String make = result.getString(1); 
     LabelValueModel item = new LabelValueModel(make, make); 
     dropDownItems.add(item); 
} 
model.addAttribute("dropDownItems", dropDownItems); 

JSP

<form:select path="dropDownItems" id="carMake" onchange="selectedMake(this.value)"><br /> 
    <form:option label="Please select a make" value="" disabled="disabled" selected="selected"/> 
    <form:options items="${dropDownItems}" itemLabel="label" itemValue="value"/> 
</form:select> 

我想做什麼,或類似的東西,是這樣的。顯然,這種代碼是不正確的......

控制器(可以保持相同的只是爲例子)

ResultSet result = select.executeQuery("SELECT DISTINCT make FROM data ORDER BY make"); 
List<LabelValueModel> dropDownItems = new ArrayList<LabelValueModel>(); 
while (result.next()) { 
     String make = result.getString(1); 
     LabelValueModel item = new LabelValueModel(make, make); 
     dropDownItems.add(item); 
} 
model.addAttribute("dropDownItems", dropDownItems); 

但是對於JSP,我想要做這樣的事情...

<ol> 
    <li items="${dropDownItems}" itemValue="value"></li> 
</ol> 

希望有人知道我在找什麼可以幫助我!謝謝!

答案...

我用了一個數組,而不是在控制器

控制器的情況列表...

String[] dropDownItems = new String[3]; 
dropDownItems[0] = "foo1"; 
dropDownItems[1] = "foo2"; 
dropDownItems[2] = "foo3"; 
model.addAttribute("dropDownItems", dropDownItems); 

JSP ...

<c:forEach items="${dropDownItems}" var="item"> 
    <li>${item}</li> 
</c:forEach> 

結果...

  • foo1
  • foo2的
  • foo3

回答

2

沒有內置彈簧JSTL標籤來創建項目的有序或無序列表有一個標籤,至少不是一個我知道的。你需要使用一個循環,這樣的:

<c:forEach items="${dropDownItems}" var="item"> 
    <li>${item.value}</li> 
</c:forEach> 

你的選擇是寫自己的標籤來做到這一點。