gpt4 book ai didi

java - "command"spring MVC 3 中的 modelName 魔法值

转载 作者:搜寻专家 更新时间:2023-10-31 19:30:45 25 4
gpt4 key购买 nike

如何去除 “command” modelName 参数的一些“神奇值”印象来创建 ModelAndView ?

例子:

@RequestMapping(value = "/page", method = GET)
public ModelAndView render() {
return new ModelAndView("page", "command", new MyObject());
}

一个希望是使用 Spring 常数,例如

new ModelAndView("page", DEFAULT_COMMAND_NAME, new MyObject());

我在 spring-webmvc-3.0.5 源 jar 的以下 3 个类中找到了 "command":

$ ack-grep 'public.*"command"'
org/springframework/web/servlet/mvc/BaseCommandController.java
140: public static final String DEFAULT_COMMAND_NAME = "command";

org/springframework/web/servlet/mvc/multiaction/MultiActionController.java
137: public static final String DEFAULT_COMMAND_NAME = "command";

org/springframework/web/servlet/tags/form/FormTag.java
56: public static final String DEFAULT_COMMAND_NAME = "command";

问题是:

  • BaseCommandController 已弃用
  • 我们不使用 MultiActionControllerFormTag

最佳答案

当你在你的 jsp spring 标签上使用 <form:form>

<form:form method="POST" action="../App/addCar">
<table>
<tr>
<td><form:label path="brand">Name</form:label></td>
<td><form:input path="brand" /></td>
</tr>
<tr>
<td><form:label path="year">Age</form:label></td>
<td><form:input path="year" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" />
</td>
</tr>
</table>
</form:form>

你必须写:

@RequestMapping(value = "/car", method = RequestMethod.GET)
public ModelAndView car() {
return new ModelAndView("car", "command", new Car());
}

因为 spring 框架需要一个名为“command”的对象。用于绑定(bind)命令对象的默认命令名称:“command”。将实例化的命令类绑定(bind)到请求时要使用的名称。

http://static.springsource.org/spring/docs/1.2.9/api/org/springframework/web/servlet/mvc/BaseCommandController.html

但是当你使用 html 表单时 <form>你可以这样写:

@RequestMapping(value = "/car", method = RequestMethod.GET)
public ModelAndView car() {
return new ModelAndView("car", "YOUR_MODEL_NAME", new Car());
}

但是在你的页面上

<form method="POST" action="../App/addCar">
<table>
<tr>
<td><form:label path="YOUR_MODEL_NAME.brand">Name</form:label></td>
<td><form:input path="YOUR_MODEL_NAME.brand" /></td>
</tr>
<tr>
<td><form:label path="YOUR_MODEL_NAME.year">Age</form:label></td>
<td><form:input path="YOUR_MODEL_NAME.year" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" />
</td>
</tr>
</table>
</form>

关于java - "command"spring MVC 3 中的 modelName 魔法值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com