在jsp的form标签中使用modelattribute

时间:2013-06-11 18:50:50

标签: java jsp spring-mvc javabeans

通常,我使用@modelattribute批注在以下过程中将表单值绑定到bean。

在jsp中

<form:form commandname="test" ../>

在java类

@modelattribute("test")
public Test commandobject()
{
return new test();
}

最近我遇到了一个片段,他们在jsp中使用modelattribute代替commandname,他们没有创建任何创建对象的方法。由于更改注释,所有这些都会由框架来处理吗?请详细说明一下。

1 个答案:

答案 0 :(得分:1)

当你在一个方法上放置@ModelAttribute时,就像在你的例子中一样,它向Spring表明如果模型中不存在该类,它应该创建一个并将其放在那里。它允许您在模型对象中具有默认值。如果您将它与Controller上的@SessionAttributes注释结合在一起,它将扩展此功能以确保在控制器被命中时对象将被置于Session中。

commandName标记上的属性modelAttributeform:form主要执行相同的操作,即将表单的字段映射到Controller中某种类型的Object。我相信modelAttribute是首选方法,commandName仅用于向后兼容。