Phi*_*ayo 5 java spring spring-mvc
如何删除"command"modelName参数的一些"神奇价值"印象来创建ModelAndView?
例:
@RequestMapping(value = "/page", method = GET)
public ModelAndView render() {
return new ModelAndView("page", "command", new MyObject());
}
Run Code Online (Sandbox Code Playgroud)
一个希望是使用弹簧常数,如
new ModelAndView("page", DEFAULT_COMMAND_NAME, new MyObject());
Run Code Online (Sandbox Code Playgroud)
我发现"command"在spring-webmvc-3.0.5源jar的以下3个类中:
$ 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";
Run Code Online (Sandbox Code Playgroud)
问题是 :
BaseCommandController 已弃用MultiActionController和FormTag小智 10
在jsp弹簧标签上使用时 <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>
Run Code Online (Sandbox Code Playgroud)
你必须写:
@RequestMapping(value = "/car", method = RequestMethod.GET)
public ModelAndView car() {
return new ModelAndView("car", "command", new Car());
}
Run Code Online (Sandbox Code Playgroud)
因为spring框架需要一个名为"command"的对象.用于绑定命令对象的缺省命令名:"command".将实例化的命令类绑定到请求时使用的名称.
但是当你使用html表单时,<form>你可以写:
@RequestMapping(value = "/car", method = RequestMethod.GET)
public ModelAndView car() {
return new ModelAndView("car", "YOUR_MODEL_NAME", new Car());
}
Run Code Online (Sandbox Code Playgroud)
但是在你的页面上
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5370 次 |
| 最近记录: |