2011-05-16 88 views
12

什麼是從數據庫中選擇枚舉的方法?我有:通過枚舉在Spring MVC中選擇

<select name="country"> 
    <c:forEach items="${countries}" var="value"> 
    <option value="${value}">${value}</option> 
    </c:forEach> 
</select> 

我在課堂上表「用戶」字段字符串/ VARCHAR「國家」

回答

23

使用從春天形式TLD的optionoptions標籤。

如果我理解正確,你將不得不在模型中添加YourEnum.values(),比如說「enumValues」(根據下面的評論,這是沒有必要的)。

<form:select path="foo"> 
    <form:option value="-" label="--Please Select"/> 
    <form:options items="${enumValues}" /> 
</form:select> 

參考:

+15

有趣的事情 - 我有同樣的問題,發現這個職位,剪切/粘貼您所提供的代碼,改變了路徑的名稱,它的工作。我從來沒有把「enumValues」放入我的模型中,Spring可以從中獲取枚舉值的唯一地方是通過反思路徑的「set」參數。事實證明,所有你需要的是「」項 - 沒有「items」屬性,並且Spring爲你自動獲取枚舉名。最好的事情是,這種行爲在任何地方都沒有記錄在春天的文檔中。我使用3.0.6,由和。 – ogradyjd 2011-11-08 19:07:18

+0

@ogradyjd很高興知道:-) – 2011-11-09 08:28:53

+3

@ogradyjd:這是一個互動功能。但它被記錄,不是在文檔中,而是在標籤'options'的屬性'items'的spring-form-tld中:「...除非包含用於數據綁定的select屬性是Enum,否則該屬性是必需的,其中如果使用enum的值。「 – Ralph 2012-10-04 21:13:52