Java SpringMVC如何将表单值转换为对象?
我正在使用Spring3.0 我知道,当我的控制器被调用时,我的表单bean将通过计算请求参数并进行必要的转换而由Spring填充 假设我有以下标记Java SpringMVC如何将表单值转换为对象?,java,forms,spring-mvc,Java,Forms,Spring Mvc,我正在使用Spring3.0 我知道,当我的控制器被调用时,我的表单bean将通过计算请求参数并进行必要的转换而由Spring填充 假设我有以下标记 <form action="test"> <input type="text" name="user.username"/> <input type="submit" value="save"/> </form> 我的问题是SpringMVC没有使用任何setter来设置对象的属性。我可
<form action="test">
<input type="text" name="user.username"/>
<input type="submit" value="save"/>
</form>
我的问题是SpringMVC没有使用任何setter来设置对象的属性。我可以强制SpringMVC使用setter来设置对象的属性吗?在Spring文档中,说明Spring是如何做到这一点的?Spring MVC为此使用的实现。您需要用
@ModelAttribute
注释您的方法参数:
public void myHandler( @ModelAttribute("myForm") MyForm myForm, ResultBinding result )
并具有提供模型对象实例的方法:
@ModelAttribute("myForm")
public MyForm getMyForm() {
return new MyForm();
}
请参见:您尝试过使用spring表单标记库吗?
这是否意味着Spring没有真正使用setter来设置属性?你能详细说明一下吗?我想它会将你的值注入到字段中,而不是使用setter,是的。Oracle文档(和)并不是100%清楚这一点,它实际上是有注释的。但这不是重点。我将表单值放入bean的属性中。问题是Spring没有使用setters方法来设置属性。
public class User
{
private username;
// Getters and setters included
}
public void myHandler( @ModelAttribute("myForm") MyForm myForm, ResultBinding result )
@ModelAttribute("myForm")
public MyForm getMyForm() {
return new MyForm();
}