1 1.1.1 支持绑定表单对象 2 我们先来看如下使用form标签的一个示例: 3 4 5 6 Jsp代码 收藏代码 7 <form:form action="formTag/form.do" method="post"> 8 <table> 9 <tr> 10 <td>Name:</td><td><form:input path="name"/></td> 11 </tr> 12 <tr> 13 <td>Age:</td><td><form:input path="age"/></td> 14 </tr> 15 <tr> 16 <td colspan="2"><input type="submit" value="提交"/></td> 17 </tr> 18 </table> 19 </form:form> 20 21 22 23 24 这个时候如果Model中存在一个属性名称为command的javaBean,而且该javaBean拥有属性 25 26 name和age的时候,在渲染上面的代码时就会取command的对应属性值赋给对应标签的值。如在上面的 27 28 代码中,假设Model中存在一个属性名称为command的javaBean,且它的name和age属性分别为 29 30 “Zhangsan”和“36”时,那么它在渲染时就会生成如下一段代码: 31 32 Html代码 收藏代码 33 <form id="command" action="formTag/form.do" method="post"> 34 <table> 35 <tr> 36 <td>Name:</td><td><input id="name" name="name" type="text" 37 38 value="ZhangSan"/></td> 39 </tr> 40 <tr> 41 <td>Age:</td><td><input id="age" name="age" type="text" value="36"/></td> 42 </tr> 43 <tr> 44 <td colspan="2"><input type="submit" value="提交"/></td> 45 </tr> 46 </table> 47 </form> 48 49 50 从上面生成的代码中,我们可以看出,当没有指定form标签的id时它会自动获取该form标签 51 52 绑定的Model中对应属性名称作为id,而对于input标签在没有指定id的情况下它会自动获取path指定 53 54 的属性作为id和name。 55 56 我们指定form默认自动绑定的是Model的command属性值,那么当我的form对象对应的属性名 57 58 称不是command的时候,应该怎么办呢?对于这种情况,Spring给我们提供了一个commandName属性, 59 60 我们可以通过该属性来指定我们将使用Model中的哪个属性作为form需要绑定的command对象。除了 61 62 commandName属性外,指定modelAttribute属性也可以达到相同的效果。这里假设上面代码中我们存 63 64 放在Model中的是user对象而不是默认的command对象,那么我们的代码就可以如下定义了: 65 66 Jsp代码 收藏代码 67 <form:form action="formTag/form.do" method="post" commandName="user"> 68 <table> 69 <tr> 70 <td>Name:</td><td><form:input path="name"/></td> 71 </tr> 72 <tr> 73 <td>Age:</td><td><form:input path="age"/></td> 74 </tr> 75 <tr> 76 <td colspan="2"><input type="submit" value="提交"/></td> 77 </tr> 78 </table> 79 </form:form> 80