2015-01-09 7 views
6

Ho un modulo in cui desidero modificare alcuni dati utente. Quindi i dati già memorizzati sono messi come th: valore e dopo l'invio mi convalida con la validazione a molla e voglio restituire il modulo su input errato. Voglio che il campo di input abbia il valore dell'input dell'utente, ma invece mi dà sempre l'input memorizzato.thymeleaf: th: il valore viene ignorato quando si utilizza th: field

Ecco come un campo di input sembra

<input type="text" th:value="${product.name}" th:field="*{name}" th:errorclass="fieldError"/> 

Se il modulo viene caricato per la prima volta i campi di input dovrebbero avere il valore dei dati già memorizzati.

Se è caricato dopo l'invio e con un errore di convalida, i campi di input devono avere il valore dell'input dell'utente.

C'è un modo per quello?

Grazie!

+0

Perché stai usando th: valore? La risposta all'ultima domanda sta usando th: field only, potresti fare un tentativo? –

+0

Causa Desidero impostare il valore durante il caricamento dei dati memorizzati. – Raphael

+0

Ma se si sta lavorando con un modulo e si compila l'oggetto prodotto nel controller, funzionerà correttamente. Potresti includere il codice del tuo modulo e il tuo controller? –

risposta

13

Attributo th: campo sostituirà attributi valore, id e nome nel vostro ingresso tag.

Al contrario, utilizzare pianura th: id, th: valore e th: citarne senza utilizzare th: campo. Allora otterrai ciò che volevi.

Poi sarà simile:

<input type="text" th:value="${product.name}" th:name="name" th:id="name" th:errorclass="fieldError"/> 

risposta simile è qui: How to set thymeleaf th:field value from other variable