在SpringMVC模型中传递新对象。addAttribute()方法

在SpringMVC模型中传递新对象。addAttribute()方法,spring,jsp,jakarta-ee,spring-mvc,controller,Spring,Jsp,Jakarta Ee,Spring Mvc,Controller,我从这里开始实施Spring PetClinic项目 我有一点怀疑,用户从欢迎页面单击查找所有者页面 处理请求的控制器代码 @RequestMapping(value = "/owners/search", method = RequestMethod.GET) public String setupForm(Model model) { model.addAttribute("owner", new Owner()); return "owners/se

我从这里开始实施Spring PetClinic项目

我有一点怀疑,用户从欢迎页面单击查找所有者页面

处理请求的控制器代码

@RequestMapping(value = "/owners/search", method = RequestMethod.GET)
    public String setupForm(Model model) {
        model.addAttribute("owner", new Owner());
        return "owners/search";
    }
现在,该控件被移动到Search.jsp页面,该页面还允许用户添加新的所有者

我的疑问是,为什么在model.addAttribute中放置新的所有者对象

model.addAttribute("owner", new Owner());
这有什么必要?。为什么流不直接导航到Search.jsp

<%@ include file="/WEB-INF/jsp/includes.jsp" %>
<%@ include file="/WEB-INF/jsp/header.jsp" %>


<h2>Find Owners:</h2>

<spring:url value="/owners" var="formUrl"/>
<form:form modelAttribute="owner" action="${fn:escapeXml(formUrl)}" method="get">
  <table>
    <tr>
      <th>
        Last Name: <form:errors path="*" cssClass="errors"/>
        <br/> 
        <form:input path="lastName" size="30" maxlength="80" />
      </th>
    </tr>
    <tr>
      <td><p class="submit"><input type="submit" value="Find Owners"/></p></td>
    </tr>
  </table>
</form:form>

<br/>
<a href='<spring:url value="/owners/new" htmlEscape="true"/>'>Add Owner</a>

<%@ include file="/WEB-INF/jsp/footer.jsp" %>
Owner类具有所有者的属性,如firstName、lastName。等等

如果您需要代码中的更多信息,请提供建议。我把它放在这里

Search.jsp

<%@ include file="/WEB-INF/jsp/includes.jsp" %>
<%@ include file="/WEB-INF/jsp/header.jsp" %>


<h2>Find Owners:</h2>

<spring:url value="/owners" var="formUrl"/>
<form:form modelAttribute="owner" action="${fn:escapeXml(formUrl)}" method="get">
  <table>
    <tr>
      <th>
        Last Name: <form:errors path="*" cssClass="errors"/>
        <br/> 
        <form:input path="lastName" size="30" maxlength="80" />
      </th>
    </tr>
    <tr>
      <td><p class="submit"><input type="submit" value="Find Owners"/></p></td>
    </tr>
  </table>
</form:form>

<br/>
<a href='<spring:url value="/owners/new" htmlEscape="true"/>'>Add Owner</a>

<%@ include file="/WEB-INF/jsp/footer.jsp" %>
谢谢。非常感谢您的帮助。

Spring的表单标记库的元素需要绑定一个模型属性来创建其路径

<form:form modelAttribute="owner"
modelAttribute属性指向您添加的所有者模型属性。很明显,它不使用它的值,毕竟它是空的。但是,它使用空对象作为模板,例如,用于生成元素名称属性的字段名。

Spring的表单标记库元素需要绑定到模型属性才能创建其路径

<form:form modelAttribute="owner"

modelAttribute属性指向您添加的所有者模型属性。很明显,它不使用它的值,毕竟它是空的。但是,它使用空对象作为模板,例如,用于生成元素名称属性的字段名。

感谢reply Sotirios感谢reply Sotirios感谢reply Sotirios