2017-12-11 2 views
-1

Ich möchte die Empfangsdaten automatisch ausfüllen. Wenn meine Quittung nicht null ist, sollte sie das richtige Geschlecht zu einem Radiobutton mit Thymelblatt auswählen. Es gibt keine Fehler, wenn der Eingang nicht null ist, aber wenn Eingang der Fehler geworfen werden null istHtml, thymleaf radiobutton Th: Feld = "" schlägt fehl, wenn die Daten null sind

<div class="form-group"> 
 
      <div id="genderReceipt"> 
 
       <label for="genderMaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderMaleReceipt" value="MALE" th:field="*{receipt.gender}"/> 
 
        Herr 
 
       </label> 
 
       <label for="genderFemaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderFemaleReceipt" value="FEMALE" th:field="*{receipt.gender}"/> 
 
        Frau 
 
       </label> 
 
      </div> 
 
      <label for="genderReceipt" class="error" style="display: none;"> Bitte gib eine Anrede an.</label> 
 
</div>

Das Ergebnis sollte so sein: Wenn Eingang == beide null deaktiviert sind ... ! wenn Eingang = null das richtige Geschlecht

Fehlerprotokoll aktiviert ist, sagt:

java.lang.IllegalStateException: Weder BindingResult noch ebenes Zielobjekt für bean name 'Empfang' als Anfrage Attribut

+0

Bitte lange Protokolle auf einigen Pastebin Website posten, weil es schwer ist, die Frage sonst zu lesen. Alos, ohne eine http://www.sscce.org/ des Problems zu haben, wird es wahrscheinlich nobagody helfen können. Sie zeigen ein HTML-Template-Snippet, aber die Logs zeigen Java-Fehler. Es ist unmöglich zu wissen, wo der Fehler bei den von Ihnen bereitgestellten Informationen liegt. –

+0

Ich denke, der Fehler tritt nur auf, wenn das Empfangsobjekt null ist. In thymeleaf kann man sagen th: value = "$ {object}! = Null? 'Ok': 'nicht ok'" aber ich finde keine Lösung für den Eingangstyp radio und th: field = ... – savier

Antwort

0

für dieses Problem Meine Lösung ist, den Code zu kopieren und einfügen th: wenn Aussagen wie hier im Beispiel

<div th:if="${receipt} == null"> 
 
       <label for="genderFemaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderMaleReceipt" value="MALE" /> 
 
        Herr 
 
       </label> 
 
       <label for="genderFemaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderFemaleReceipt" value="FEMALE" /> 
 
        Frau 
 
       </label> 
 
      </div> 
 
      <div th:if="${receipt} != null"> 
 
       <label for="genderFemaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderMaleReceipt" value="MALE" th:field="*{receipt.gender}"/> 
 
        Herr 
 
       </label> 
 
       <label for="genderFemaleReceipt" class="radio-inline"> 
 
        <input type="radio" name="genderReceipt" id="genderFemaleReceipt" value="FEMALE" th:field="*{receipt.gender}"/> 
 
        Frau 
 
       </label> 
 
      </div>

Ich weiß, dass das nicht die beste Praxis ist (aber ich wusste keine andere Möglichkeit, es zu tun).

+0

Intialisieren des Geschlechts Attribut mit leerer Zeichenfolge im Controller ist gut genug, anstatt doppelten Code zu haben. –

Verwandte Themen