【发布时间】:2013-06-21 01:44:52
【问题描述】:
我试图在我的控制器中进行依赖注入,而不是使用 setters 方法,但它不起作用。目的是在使用控制器发布数据表单时将表单输入与我的域模型的属性绑定。
我想要什么:只需在使用 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>
有没有一种方法可以在不使用 setter 方法的情况下将表单输入与我的模型类(Person)绑定?
有人知道另一个可以实现这一点的 java web 框架吗?
谢谢!
【问题讨论】:
-
"改为使用setter方法,但是没用"怎么没用?
-
抛出异常,说明该属性不存在。 Spring MVC 在 setter 方法中使用反射来做到这一点。我想知道是否有另一种方法 - 不使用 setter 方法 - 这样做。谢谢!
-
现在我看到这个问题只是你之前的问题stackoverflow.com/questions/17220310/…的重复。
-
是的,我把它放在了错误的标签中——Java 代替了 Spring MVC。我要联系管理员删除以前的。谢谢。
标签: spring-mvc