在我的 Spring Controller 中,我有一个方向数组。我想使用该数组,或将其制成一个列表,然后在我的 JSP 页面上填充一个有序列表。
例如,我已经在我的 JSP 页面上使用来 self 的 Controller 的列表属性填充了一个下拉菜单。
代码...
Controller
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>
我想做的,或者类似的,就是这个。显然这段代码是不正确的...
Controller (为了这个例子,让它保持不变)
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>
希望有人知道我想做什么可以帮助我!谢谢!
回答...
我在controller的情况下使用了数组而不是list
Controller ...
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
最佳答案
没有内置的 Spring JSTL 标签来创建带有单个标签的有序或无序的项目列表,至少我不知道。您将需要使用循环,如下所示:
<c:forEach items="${dropDownItems}" var="item">
<li>${item.value}</li>
</c:forEach>
您的替代方法是编写您自己的标签来执行此操作。
关于javascript - 从 Spring MVC 列表属性填充 HTML 有序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15554699/