Wie der Zugriff auf Spring 3 MVC-validator Ergebnisse in JSP-ohne die Verwendung von Formular-taglib
Habe ich eine einfache Spring 3 MVC Formular mit jsp-taglibs. Ich muss eine Klasse Hinzugefügt werden, basierend darauf, ob ein Feld in das Formular einen Fehler hat die mit ihm verbunden ist oder nicht. Hier ist ein snipet von meinem HTML:
<div class="control-group error"> <!-- HERE: binding.hasErrors() ? "error" : "" -->
<form:label path="username" cssClass="control-label">User Name</form:label>
<div class="controls">
<form:input path="username" cssClass="span3"/>
<form:errors path="username" cssClass="help-inline" />
</div>
</div>
So, in der ersten Zeile das class-Attribut hat zwei Klassen "control-group" und "Fehler". Ich muss hinzufügen, Fehler-Klasse nur, wenn das Feld hat einen Fehler zugeordnet. Ich weiß, die WebDataBinder ist in der Seite irgendwie, aber ich weiß nicht, wie man darauf zugreift. Im wesentlichen möchte ich nur ausführen, einige gute alte Mode <%= verbindlich.hasError() ? "Fehler" : "" %>, aber wie bekomme ich Zugriff auf die Bindemittel in der Seite?
InformationsquelleAutor chubbsondubs | 2012-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht,
<Frühjahr:hasBindErrors>
tag (ich verstehe nicht, was du meinst zu schreiben ", ohne die Verwendung von Formular-taglib")?Bearbeiten nach Kommentare:
Innen
<spring:hasBindErrors>
tag gibt eserrors
variable (sieheFehler
interface) gebunden tatsächlichen Bindung-Fehler. Sie können überprüfen, ob Feld hat Fehler übererrors.hasFieldErrors(fieldName)
.Und wirklich obskuren Weg, um Fehler im Feld, ohne jeden tag
requestScope['org.springframework.validation.BindingResult.yourCommandName'].hasFieldErrors('username')
...Was ich meine ist, kann ich direkt auf die BindingResults innerhalb von JSP-ohne mit Feder: oder-form:. Der Frühling hat die BindingResults in der Seite mit einem hart codierten Eigenschaft, dass alle tags kennen. Was ist also das Geheimnis name Anfrage.getRequestParmeter("??????")?
Sie können
errors.hasFieldErrors(fieldName)
innerhalb dieses Tags (immer noch, ich empfehle aufzuhalten der Benutzung tags), siehe mein edit.Danke für deine Antwort, aber leider klappt es nicht mit 3.0, da Fehler nicht definiert ist. Ich habe eine Lösung gefunden, die nicht verlangen, taglibs, weil Sie sind schrecklich, und ich kann nicht glauben, dass Java-Entwickler denken immer noch, Sie nicht zu verschwenden Ihre Zeit mit Ihnen. Ich fand einen einfacheren Ansatz.
InformationsquelleAutor Xaerxess
Dies ist zwar ein wenig mehr zu verdecken ich denke, es ist einfacher, weil es eine einzige Linie, die ist, wie es wäre, wenn ich nur mit scriplets wie jeder vernünftige Java-dev sollte. Taglibs müssen sterben, sterben, sterben, sterben, dann sterben einige mehr. Sie sind schrecklich und ich kann nicht glauben, dass Java-Entwickler denken immer noch, Sie wirklich helfen und sich nicht verlieren, unsere völlige Zeit. PHP-Entwickler, die uns auslachen, wenn wir diese Dinge.
Dieser funktioniert. Beachten Sie, dass
user
hier ist der name der Sie Daten Modell Klasse.InformationsquelleAutor chubbsondubs
Gibt es einen besseren Weg, um die Fehlermeldung
Und ein liner
InformationsquelleAutor java_dude