我有一個域對象具有一個枚舉屬性,我想顯示一個下拉列表與該對象的窗體中的所有可能的枚舉值。想象一下以下對象:如何使用Spring和Thymeleaf在下拉列表中顯示所有可能的枚舉值?
public class Ticket {
private Long id;
private String title;
private State state;
// Getters & setters
public static enum State {
OPEN, IN_WORK, FINISHED
}
}
在我的控制器我有呈現此對象的窗體的方法:
@RequestMapping("/tickets/new")
public String showNewTicketForm(@ModelAttribute Ticket ticket) {
return "tickets/new";
}
模板看起來是這樣的:
<form th:action="@{/tickets}" method="post" th:object="${ticket}">
<input type="text" th:field="*{title}" />
<select></select>
</form>
後來它應該被轉換成這樣的東西:
<form action="/tickets" method="post">
<input type="text" name="title" />
<select name="state">
<option>OPEN</option>
<option>IN_WORK</option>
<option>FINISHED</option>
</select>
</form>
如何創建選擇標籤?所選的值也應該被映射到車票自動,這樣我可以做這樣的事情在控制器:
@RequestMapping(value = "/tickets", method = RequestMethod.POST)
public String createTicket(@Valid Ticket ticket) {
service.createTicket(ticket);
return "redirect:/tickets";
}
T的目的是什麼? – saml
它是用於訪問類型和調用靜態方法或獲取靜態屬性的Spring EL語法。請參閱http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-types – jchampemont
對'th:value = $ {{state}}'使用轉換標記 –