2013-03-21 77 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> 

你的选择是写自己的标签来做到这一点。