springmvc的渲染

时间:2023-01-27 23:34:17

  

 1.1.1  支持绑定表单对象
我们先来看如下使用form标签的一个示例: Jsp代码 收藏代码
<form:form action="formTag/form.do" method="post">
<table>
<tr>
<td>Name:</td><td><form:input path="name"/></td>
</tr>
<tr>
<td>Age:</td><td><form:input path="age"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form:form> 这个时候如果Model中存在一个属性名称为command的javaBean,而且该javaBean拥有属性 name和age的时候,在渲染上面的代码时就会取command的对应属性值赋给对应标签的值。如在上面的 代码中,假设Model中存在一个属性名称为command的javaBean,且它的name和age属性分别为 “Zhangsan”和“36”时,那么它在渲染时就会生成如下一段代码: Html代码 收藏代码
<form id="command" action="formTag/form.do" method="post">
<table>
<tr>
<td>Name:</td><td><input id="name" name="name" type="text" value="ZhangSan"/></td>
</tr>
<tr>
<td>Age:</td><td><input id="age" name="age" type="text" value="36"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form> 从上面生成的代码中,我们可以看出,当没有指定form标签的id时它会自动获取该form标签 绑定的Model中对应属性名称作为id,而对于input标签在没有指定id的情况下它会自动获取path指定 的属性作为id和name。 我们指定form默认自动绑定的是Model的command属性值,那么当我的form对象对应的属性名 称不是command的时候,应该怎么办呢?对于这种情况,Spring给我们提供了一个commandName属性, 我们可以通过该属性来指定我们将使用Model中的哪个属性作为form需要绑定的command对象。除了 commandName属性外,指定modelAttribute属性也可以达到相同的效果。这里假设上面代码中我们存 放在Model中的是user对象而不是默认的command对象,那么我们的代码就可以如下定义了: Jsp代码 收藏代码
<form:form action="formTag/form.do" method="post" commandName="user">
<table>
<tr>
<td>Name:</td><td><form:input path="name"/></td>
</tr>
<tr>
<td>Age:</td><td><form:input path="age"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form:form>