1

在我的 Spring Controller 中,我有一系列的方向。我想使用那个数组,或者把它做成一个列表,然后在我的 JSP 页面上填充一个有序列表。

例如,我已经在我的 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
4

1 回答 1

2

没有内置的 Spring JSTL 标签来创建带有单个标签的有序或无序列表,至少我不知道。您将需要使用循环,如下所示:

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

您的替代方法是编写自己的标签来执行此操作。

于 2013-03-21T18:01:58.713 回答