2015-07-03 45 views
0

我有相当复杂的JPA实体。在我的页面上有一个表格,在被填充后创建实体。将HTML表单绑定到实体Spring MVC

但是实体包含很少@Embedded对象,它们的字段也需要填充。

让我们假设这样一个实体:

@Entity 
public class User { 
    @Embedded 
    private Address address; 
    @Embedded 
    private PersonalData personalData; 
} 

和@Embeddable对象:

public class Address { 
    private String city; 
    private String street; 
    //and so on.. 
} 

public class PersonalData { 
    private String username; 
    private String password; 
    private String nameAndLastname; 
    //and so on.. 
} 

在这种情况下,是有可能从HTML页面绑定形式进入直接这个实体?

我想过创建一些DTO对象,它具有所有需要的字段,然后将该UserDTO转换为User实体对象。但我认为这会带给我更多的复杂性和冗余代码。 (是不是反模式?)

我可以做@ RequestParam的内部控制器的方法而不是@ModelAttribute绑定的巨大列表,但代码变得如此漫长而不优雅。

如何让它工作优雅? 谢谢!

回答

0

只需添加你的对象模型,并填写表格与嵌入式路径

model.addAttribute("user", new User()); 

<form:form id="user" (...)> 
    <form:input path="user.address.city" /> 
(..) 
+0

所以进入注册页面时,页面应该有我新的用户模型()和它的打算形式submiting后要填写?是否可以在Freemarker中完成?我确信它是 – azalut

+0

我从来没有做过什么与Freemaker,btw为什么你使用Freemaker反对JSP和春天形式? – kxyz

+0

我认为Freemarker不像JSP那么过时。 JSP代码是很罗嗦的。所以我说从我的控制器返回.ftl文件 – azalut