java - jsp的form标签中modelattribute的使用

标签 java jsp spring-mvc javabeans

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

在jsp中

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

在java类中

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

最近我遇到了一个片段,其中他们在 jsp 中使用 modelattribute 代替 commandname,并且他们没有创建任何用于创建对象的方法。由于更改注释,框架是否会处理所有这些?请对此进行一些说明。

最佳答案

当您将 @ModelAttribute 放在方法上时(如您的示例所示),它向 Spring 指示,如果模型中不存在该类,则应创建一个并将其放在那里。它允许您在模型对象中拥有默认值。如果将其与 Controller 上的 @SessionAttributes 注释结合起来,它将扩展此功能以确保在 Controller 被击中时将对象放入 session 中。

form:form 标记上的属性 commandNamemodelAttribute 主要执行相同的操作,即将表单的字段映射到 Controller 中某种类型的对象。我相信 modelAttribute 是首选方法,而 commandName 只是为了向后兼容。

关于java - jsp的form标签中modelattribute的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051579/

相关文章:

Java KeyListener 的 keyReleased 左右箭头键不调用

Spring MVC 3 JSTL 不会在 Tomcat 5.5 中输出值

java - 使用 iText 将 jcomponent 导出为 PDF

java - 将用户添加到 session 并使用 spring 将其获取到实体中

java - JSP页面刷新时清除数据

jsp - 如何使用jsp include在应用程序(war)之外包含文件

java - 将 CSS 和图像链接到 Spring MVC maven 项目

java - session.update 未在数据库中更新

java - 为什么我的 spring boot gradle 项目使用 spring jpa 连接到 oracle 抛出异常?

java - 设置 firefoxWebDriver.get(...) 超时