2017-10-15 18 views
1

は私が thymeleaf 春ブーツのドロップダウンリストから、データベース内の値を保持しようとしているが、データベースが空の値が取り込まれます。春ブーツThymeleafドロップダウンリスト

明らかに、コントローラは値を渡しません。

私はの値を取得し、表示することができますがをGET私はPOSTでそれらを持続することはできません。

私はどこからでも明確な例を取得することはできませんよとThymeleaf上にも例が明確ではありません。

良い例や解決策をお探しください。

コードは以下のとおりです。

@Controller 
public class HomeController { 

    @RequestMapping(value = "/signup", method = RequestMethod.POST) 
    public String signupPost(@ModelAttribute("user") User user, 
     Model model, BindingResult result) { 

     if (!result.hasErrors()) { 
      userService.saveUser(user); 
     } 
     return "redirect:/"; 

    } 

} 

Userクラスは

@Entity 
public class User { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "user_id", nullable = false, updatable = false) 
    private Long userId; 

    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
    @JoinColumn(name = "award_partner_id") 
    private AwardPartner awardPartner; 

    getters and setters.... 
} 

HTMLスニペット以下のようなことはここにある:あなたのformタグで

<!--Award Partner--> 
<div class="form-group"> 
    <label class="col-md-4 control-label">Award Partner</label> 
    <div class="col-md-6 selectContainer"> 
     <div class="input-group"> 
      <span class="input-group-addon"><i 
       class="glyphicon glyphicon-list"></i></span> 
       <select name="awardPartner" roleId="awardPartner" id="awardPartner" 
       th:field="*{awardPartner}" class="form-control selectpicker"> 
       <option value="">Select Award Partner</option> 
       <option th:each="awardPartner : ${awardPartners}" 
        th:value="${awardPartner.id}" 
        th:text="${awardPartner.title}"></option> 
      </select> 
     </div> 
    </div> 
</div> 

<!-- end snippet --> 
+0

タイプAwardPartnerのないオブジェクトは、ユーザーについては何もありません。 –

+0

@SébastienTempradoの申し訳ありませんが、私はあなたを取得していません。私はそれが永続しているので、ユーザーの部分を投稿していない。郡およびAwardPartnerスニペットのみが問題に直面しています。 – Ryan

+0

投稿要求の 'awardPartner'の下で、あなたのユーザオブジェクトには何が入っていますか? –

答えて

1

、私はth:object="user"があると思います。

選択タグには、th:field="*{awardPartner}"があります。これは、選択した値(選択したオプションタグの値)を、オブジェクトユーザのフィールドawardPartnerに配置することを意味します。このフィールドawardPartnerはオプション値で

タイプAwardPartnerであり、あなたは値として、ID(intまたは文字列を?)持っているが、あなたのHTMLで

+0

工場に感謝!それは魅力のように働いた。 – Ryan