2017-10-15 164 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片段是在這裏:

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

在HTML的一個目標,沒有什麼關於用戶。 –

+0

@SébastienTemprado道歉,但我沒有得到你。我沒有發佈用戶部分,因爲它保持良好。只有County和AwardPartner片段纔會面臨問題。 – Ryan

+0

您在發佈請求中的'awardPartner'下的用戶對象中獲得了什麼? –

回答

1

在你的表單標籤,我覺得這是th:object="user"

在您選擇的標籤中,有th:field="*{awardPartner}"。這意味着您將把選定的值(所選選項標籤的值)放在對象用戶的字段awardPartner中。此字段awardPartner的類型是AwardPartner

在選項值的,你有一個id(int或字符串?)的值,但不型AwardPartner

+0

感謝一家工廠!這就像一個魅力。 – Ryan