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 に答える