Java &引用;“命令”;spring MVC 3中的modelName魔术值
如何删除Java &引用;“命令”;spring MVC 3中的modelName魔术值,java,spring,spring-mvc,Java,Spring,Spring Mvc,如何删除“command”modelName参数的一些“magic value”印象来创建ModelAndView 例如: @RequestMapping(value = "/page", method = GET) public ModelAndView render() { return new ModelAndView("page", "command", new MyObject()); } 一个希望是使用弹簧常数,例如 new ModelAndView("page", DEF
“command”
modelName参数的一些“magic value”印象来创建ModelAndView
例如:
@RequestMapping(value = "/page", method = GET)
public ModelAndView render() {
return new ModelAndView("page", "command", new MyObject());
}
一个希望是使用弹簧常数,例如
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
- 我们不使用
和MultiActionController
FormTag
- 我不会使用默认名称。如果对象是
用户
调用它用户
,如果对象是项目
调用它项目
。如果您需要一个默认值(例如,对于通用框架),请定义您自己的常量。当您在jsp spring标记上使用时
因为spring框架需要一个名为“command”的对象。
用于绑定命令对象的默认命令名:“command”。
将实例化的命令类绑定到请求时要使用的名称
但是当您使用html表单
时,您可以编写:
@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>
名称
年龄
@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>