Ho un oggetto dominio con una proprietà enum e voglio visualizzare un elenco a discesa con tutti i possibili valori enum nel modulo per questo oggetto. Immaginate il seguente oggetto:Come visualizzare tutti i possibili valori enum in un elenco a discesa utilizzando Spring e Thymeleaf?
public class Ticket {
private Long id;
private String title;
private State state;
// Getters & setters
public static enum State {
OPEN, IN_WORK, FINISHED
}
}
Nel mio controller Ho un metodo che rende una forma per questo oggetto:
@RequestMapping("/tickets/new")
public String showNewTicketForm(@ModelAttribute Ticket ticket) {
return "tickets/new";
}
Il modello si presenta così:
<form th:action="@{/tickets}" method="post" th:object="${ticket}">
<input type="text" th:field="*{title}" />
<select></select>
</form>
In seguito si dovrebbe essere trasformato in qualcosa del genere:
<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>
Come posso creare il tag select? Il valore selezionato deve anche essere mappato al biglietto automaticamente in modo che io possa fare qualcosa di simile nel controller:
@RequestMapping(value = "/tickets", method = RequestMethod.POST)
public String createTicket(@Valid Ticket ticket) {
service.createTicket(ticket);
return "redirect:/tickets";
}
Qual è lo scopo della T? – saml
È la sintassi EL molla per accedere a un tipo e invocare metodi statici o ottenere proprietà statiche. Vedi http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-types – jchampemont
In "th: value = $ {{state}}" usa i tag di conversione –