2017-10-15 119 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