假设我有一个用户模型:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="username")
private String username;
@Column(name="password")
private String password;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name="user_profile_id")
private UserProfile profile;
UserProfile模型:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="email")
private String email;
@Column(name="firstname")
private String firstname;
@Column(name="lastname")
private String lastname;
我可以在控制器中添加此模型:
@RequestMapping(value = {"/user/{id}"}, method = RequestMethod.GET)
public String showUser(ModelMap model, @PathVariable int id) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "UserView";
}
然后可以像这样在.jsp页面中访问模型:
<form:form method="POST" modelAttribute="user">
<form:input type="text" path="username"/>
<form:input type="password" path="password"/>
</form>
但是问题是-在编辑从控制器传递到.jsp页面的用户模型时,如何同时编辑位于User模型中的UserProfile模型?< / p>
问题不是重复的,因为我想知道“路径”是否可以处理层次结构属性,而不是如何仅将一个对象传递给视图。
答案 0 :(得分:2)
像这样使用
<select class="monday">
<option value="NONE"> --SELECT--<option>
<c:forEach items="${employees.roster}" var="roster">
<option value="${roster.shiftValue}">${roster.shiftId} /${roster.shiftValue}</option>
</c:forEach>
</select>
我不建议您将您的实体传递到前面,而是使用DTO进行去耦