2016-11-30 9 views
0

用プレーンなターゲットオブジェクトどちらも私が作成必要このフォームでparnet辞書を持って欲しいの選択/オプションでThymeleaf例外BindingResultも@Crafalo提案で編集Bean名

<form action="#" th:action="@{/admin/dict/adder}" th:object="${dictionary}" method="post"> 
    <table> 
     <tr> 
      <td>Typ slownika:</td> 
      <td> 
       <select class="form-control" th:field="*{dict}" id="dropType"> 
        <option value="0" th:text="select operator" ></option> 
        <option th:each="dict : ${dictList}" th:value="${dict.id}" 
          th:text="${dict.description}">Cos</option> 
       </select> 
      </td> 
     </tr> 

コントローラ

List<Dictionary> dictList = dictService.findAllDictionaries(); 
     model.addAttribute("dictionary", new Dictionary()); 
     model.addAttribute("dictList", dictList); 



Neither BindingResult nor plain target object for bean name 'dict' available as request attribute 

子ども辞書

答えて

1

あなたの問題はあなたの居場所にあります:フィールド

あなたはまた、モデル内のビューに "辞書" オブジェクトを送信する必要が

<select class="form-control" th:field="*{id}" id="dropType"> 

そして、いくつかの場所であるべきで、フォームに

<form th:object="${dictionary}"> 

UPDATEを持っています

model.addAttribute("dictionary", new Dictionary()); 

もう1つのmiあなたは、コントローラからいくつかの値を読みたいのでpreffixがあるが、この場合には、あなただけのいくつかの固定テキストを書きたい場合は、通常の使用:株式は、あなたが目を使用する場合は、あなたの最初のオプションタグ

th:text="select operator" 

でありますオプションタグを変更するには、

<option value="0">select operator</option>      
+0

私のメインポストを編集しました。すべてのフォームがポストメソッドなので、私は

を持っていますが、モデル属性で作成するフォームの要素が1つ必要です – jan345

+0

@ jan345モデルにオブジェクト "dictionary"選択フィールドからプリフィックス「辞書」を削除します。私の応答を確認してください – cralfaro

+0

select/optionでdictionaryからdictに名前を変更すると、 が追加されました。model.addAttribute( "dictionary"、new Dictionary());しかし、私は今持っています BindingResultもBean名 'dict'のプレーンターゲットオブジェクトもリクエスト属性として利用できません – jan345

関連する問題