2017-12-11 9 views
-1

領収書データを自動入力したい。私の領収書がヌルでない場合は、thymeleafのラジオボタンに正しい性別を選択する必要があります。そこ領収書がnullでない場合、エラーはありませんが、領収書がnullの場合、エラーがHtml、thymleaf radiobutton th:データがnullの場合、field = ""は失敗する

<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>

のように結果がでなければなりませんスローされます。領収場合== nullの両方がチェックされています... !領収書は= nullを右性別がチェックされている場合

エラーログは言う:

java.lang.IllegalStateException:BindingResultもプレーンなターゲットオブジェクトどちらをBean名要求属性として利用できる「領収書」の

この問題に対する私のソリューションは、コードを複製して挿入することです
+0

多くのペーストビンサイトでロングログを投稿してください。アロスは、問題のhttp://www.sscce.org/を持っていなくても、誰も助けることができないでしょう。 HTMLテンプレートスニペットを表示しますが、ログにJavaエラーが表示されます。あなたが提供する情報のどこにエラーがあるのか​​を知ることは不可能です。 –

+0

エラーは、領収書オブジェクトがnullの場合にのみ発生すると思います。値が "$ {object}!= null? ''いいえ ':' not ok '"しかし、入力タイプのラジオとth:field =の解決策は見つかりませんでした。 – savier

答えて

0

目:もしここに例

<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>

のように文私はベストプラクティスではないことを知っています;(しかし、私はそれを行うための他の方法を知っていませんでした。

+0

ジェンダーを初期化するコントローラーの空の文字列を持つ属性は、コードが重複する代わりに十分です。 –

関連する問題