Frühjahr Thymeleaf + Textarea
Ich erstellte Formular mit einer Texteingabe und einer textarea
. Die Eingabe von text funktioniert gut, aber die textarea gar nicht angezeigt:
<div id="news" th:fragment="admin_panel">
<form method="POST" th:action="@{/addNews}" th:object="${news}" id="myform">
Tytuł:
<input type="text" th:field="*{title}"/>
<input type="submit" value="Wstaw"/>
</form>
<textarea name="news_content" rows="20" cols="80" th:field="${news.content}" form="myform">
...
</textarea>
</div>
Wenn ich löschen th:field
die textarea
angezeigt wird und wenn ich th:value
statt th:field
es angezeigt, auch, aber nicht speichern den geschriebenen text zu news.Inhalte (news.Titel wird gespeichert ok).
Habe ich keine Idee... ich habe gelesen, thymeleaf Referenzen, kann aber nicht beantworten, also bitte Hilfe, gute Leute!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie das ausgewählte Objekt Ausdruck
*{content}
UND legen Sie die textarea-Tags innerhalb des form-tag!Am Ende its all about generiert
name
Attribut in der resultierenden form. Der name übereinstimmen muss, um diepropertyAccessor
von der ausgewählten root-Objektth:object
.Das Formular verarbeitet wird, wird die Feder (ohne thymeleaf abfangen).
Die docs über spring integration sind wirklich gut: http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html
Sie sagen:
Werte für th:Feld Attribute werden muss-Auswahl-expressions (*{...}), was Sinn macht, angesichts der Tatsache, dass Sie bewertet werden auf dem Formular-backing-bean und nicht auf dem Kontext-Variablen (oder Modell-Attribute in Spring MVC-jargon).
BEARBEITEN:
Dank der Verknüpfung zu dem Projekt, das Update war einfach:
th:field="*{content}"
und Sie sollten in Ordnung sein.Über Ausnahmen :
In meinem Formular gibt es Texteingabe und textarea-wie Sie sehen. news.Titel wird gespeichert ok, aber news.Inhalte nicht. Wenn ich die Stelle für den test dieser Parameter ( in text-input benutze ich news.Inhalte und textarea-es gibt th:Feld = ${news.title} ) funktioniert es auch gut. Vielleicht sollte ich die anderen Ausdruck statt th:Feld ?
News.java
HomeController.java
Paket eniupage.web;
AdminController.java
Gibt es keine resultierende html-form, weil es gar nicht angezeigt in div. Es gibt nur text-input und submit-button.
Bearbeitet html:
Ich bin mit thymeleaf 3.0. Vielleicht ist das der Grund ?
In der Referenz habe ich gelesen :
"Der th:field-Attribut verhält sich unterschiedlich, je nachdem, ob es angebracht ist , den oder tag (und auch abhängig von der spezifischen Art der tag)."
Aber ich kann nicht finden, was ist der Unterschied zwischen th:field in input und textarea.