Spring表单在基础域模型中的模型对象中插入数据

时间:2015-05-01 11:43:45

标签: spring spring-mvc

我有一个这样的模型:

public class User{
    private int id;
    private City city;

    //Getter - setters
}

public class City{
    private int id;
    private String name;

    //Getter - setters
}

现在在JSP上我想显示一个用户模型的表单,它应该在下拉列表中询问用户的城市,相应的城市对象应该存储在city中的User对象中模型。

对于普通字段,我知道我们可以这样写:

<form:input path="name" />

但是我们如何在基础模型中绑定模型对象?在用户选择任何一个城市之后,Spring会如何知道它应该存储哪个对象?

1 个答案:

答案 0 :(得分:0)

非常简单,你需要在控制器方法中使用@modelAttribute(或者只是将它添加到模型中)加载表单并在你的情况下使用路径应该是city.name

你的问题更像是如何引用子模型,spring跟随bean路径,在你的情况下,如果你想发布一个带有用户对象的城市,你只需要这样做

<form:form method="POST" commandName="user">
    <form:input path="city.name" />
    <form:input path="attribute of user" />
</form:form>