2017-02-16 12 views
0

我想在我的JSP中添加一個Select:multiple標籤,然後將其映射到表單模型類,在那裏我將檢索加載的數據。什麼類型用於Select:在Spring中是多個?

但我沒有找到什麼類型的變量,以便我可以做到這一點。

它會是什麼?

例: JSP

<form:select multiple="true" path="harmonic"> 
    <c:forEach begin='1' end='15' varStatus='loop'> 
    <form:options items="<--Variable?->" itemValue="loop" itemLabel="loop"/> 
    </c:forEach> 
<form:select> 

public class HarmonicForm{ 

    private ???? selectMultiple; 

} 
+0

您是否嘗試過使用ID數組? – cralfaro

+0

沒有。數組可以工作嗎? –

+0

我認爲也可以工作,但列表更容易處理,所以更好的列表的方法 – cralfaro

回答

1

春季選擇承認任何像列表或集合的集合。

private List<YOUR_OBJECT_TYPE_HERE> selectMultiple; 

您可以將模型傳遞給視圖,不需要使用foreach或選項標記。

<form:select multiple="true" path="harmonic" items="${items}" itemLabel="harmonicLabelAttribute" itemValue="harmonicValueAttribute" /> 

您可以檢查TLD文檔here

+0

好的,所以有個問題:如果我將$ {items}添加到select,如何定義$ {items}集合以及如何知道選擇了哪個?在我的情況下,我希望用戶從1-15中選擇他想要的任何和每個數字。 –

+0

$ {items}是使用model.put(itemsCollection)從您的控制器中設置的。一旦表單被提交,對象selectMultiple應該被初始化爲所選對象。春天會做到這一點,所以你不必擔心這一點。 –

+0

因此,我也可以添加一個變量到表單模型中,我有一個列表,其中包含我希望在select中可用的所有對象。這樣我可以控制模型中的數字。 –

1

您需要使用Collection<?>一些對象內。你可以創建自己的對象或使用SelectItem.class

然後,

<form:select multiple="true" path="harmonic"> 
    <form:options items="${selectMultiple}" itemValue="value" itemLabel="name"/> 
</form:select> 
+0

只是爲了澄清,我可以使用整數集合嗎?選擇是爲了讓用戶從一系列整數中進行選擇。 –

+0

是的,你可以。需要修改一點。只需從我的解決方案中刪除itemvalue和itemlabel –

1

使用元素

public class HarmonicForm{ 

    private Listy<Harmonic> harmonic; 

} 

public class Harmonic{ 
    //Be sure to implement equals and hashcode 
} 

的列表,你可以找到一個類似的案件在這裏Spring select multiple tag and binding

相關問題