我正在尝试在我的控制器中进行依赖注入,而不是使用setter方法,但它没有用。当使用控制器执行数据表单的发布时,目的是将表单输入与我的域模型的属性绑定。
我想要的是:使用springframework 3.1在控制器类中将域模型与我的表单绑定。
我的域名类:
public class Person {
private String name;
@Autowired
public Person(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
我的jsp(person-get):
<form action="test-person" method="post">
<table cellpadding="0" cellspacing="0" align="center">
<tr>
<td> <b> NAME: </b> </td>
<td> <input type="text" id="name" name="name"> </td>
</tr>
</table>
</form>
我的控制器:
@Controller
public class PersonController {
@RequestMapping(value = "test-person", method = RequestMethod.GET)
public String loadViewGet() {
return "person-get";
}
@RequestMapping(value = "test-person", method = RequestMethod.POST)
public String doPost(Person person, Model model) {
model.addAttribute("person", person);
return "person-post";
}
}
最后一个jsp显示用户输入的人名(person-post):
<table cellpadding="0" cellspacing="0" align="center">
<tr>
<td> <b> NAME: </b> </td>
<td> ${person.name} </td>
</tr>
</table>
有一种方法可以将表单输入与我的模型类(Person)绑定,而无需使用setter方法吗?
任何人都知道另一个可以做到这一点的java的web框架吗?
谢谢!
答案 0 :(得分:0)
@Autowired
bean中定义的bean)创建的bean支持 @Configuration
注释和依赖注入。
MVC的域模型对象是在处理程序参数解析器(而不是应用程序上下文)的请求数据绑定过程中创建的。不支持自动装配和其他DI功能。您必须是域模型对象的用户属性访问者(getter和setter)。