1.    form标签

使用Spring的form标签主要有两个作用,第一是它会自动的绑定来自Model中的一个属性值到当前form对应的实体对象,默认是command属性,这样我们就可以在form表单体里面方便的使用该对象的属性了;第二是它支持我们在提交表单的时候使用除GET和POST之外的其他方法进行提交,包括DELETE和PUT等。

1.1  支持绑定表单对象

我们先来看如下使用form标签的一个示例:

1. <form:form action="formTag/form.do" method="post">  
2.     <table>  
3.         <tr>  
4.             <td>Name:</td><td><form:input path="name"/></td>  
5.         </tr>  
6.         <tr>  
7.             <td>Age:</td><td><form:input path="age"/></td>  
8.         </tr>  
9.         <tr>  
10.             <td colspan="2"><input type="submit" value="提交"/></td>  
11.         </tr>  
12.     </table>  
13. </form:form>

这个时候如果Model中存在一个属性名称为command的javaBean,而且该javaBean拥有属性name和age的时候,在渲染上面的代码时就会取command的对应属性值赋给对应标签的值。如在上面的代码中,假设Model中存在一个属性名称为command的javaBean,且它的name和age属性分别为“Zhangsan”和“36”时,那么它在渲染时就会生成如下一段代码:

input :一般的表单

1. <form>  
2. <table>  
3. <tr>  
4. <td>Name:</td><td><input/></td>  
5. </tr>  
6. <tr>  
7. <td>Age:</td><td><input/></td>  
8. </tr>  
9. <tr>  
10. <td><input/></td>  
11. </tr>  
12. </table>  
13. </form>

  从上面生成的代码中,我们可以看出,当没有指定form标签的id时它会自动获取该form标签绑定的Model中对应属性名称作为id,而对于input标签在没有指定id的情况下它会自动获取path指定的属性作为id和name。

 

代码中的应用主要就是springmvc 的表单

1 <body>
  2     <ul class="nav nav-tabs">
  3         <li><a href="${ctx}/academic/expert/">专家学者列表</a></li>
  4         <li class="active"><a href="${ctx}/academic/expert/form?id=${expert.id}">专家学者<shiro:hasPermission name="academic:expert:edit">${not empty expert.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="academic:expert:edit">查看</shiro:lacksPermission></a></li>
  5     </ul><br/>
  6     <form:form id="inputForm" modelAttribute="expert" action="${ctx}/academic/expert/save" method="post" class="form-horizontal">
  7         <form:hidden path="id"/>
  8         <sys:message content="${message}"/>        
  9         <div class="control-group">
 10             <label class="control-label">姓名:</label>
 11             <div class="controls">
 12                 <form:input path="fullName" htmlEscape="false" maxlength="255" class="input-xlarge required"/>
 13                 <span class="help-inline"><font color="red">*</font> </span>
 14             </div>
 15         </div>
 16         <div class="control-group">
 17             <label class="control-label">姓名首字母:</label>
 18             <div class="controls">
 19                 <form:select path="initialName" class="input-small ">
 20                     <form:option value="" label=""/>
 21                     <form:option value="A"  label="A" />
 22                     <form:option value="B"  label="B" />
 23                     <form:option value="C"  label="C" />
 24                     <form:option value="D"  label="D" />
 25                     <form:option value="E"  label="E" />
 26                     <form:option value="F"  label="F" />
 27                     <form:option value="G"  label="G" />
 28                     <form:option value="H"  label="H" />
 29                     <form:option value="I"  label="I" />
 30                     <form:option value="J"  label="J" />
 31                     <form:option value="K"  label="K" />
 32                     <form:option value="L"  label="L" />
 33                     <form:option value="M"  label="M" />
 34                     <form:option value="N"  label="N" />
 35                     <form:option value="O"  label="O" />
 36                     <form:option value="P"  label="P" />
 37                     <form:option value="Q"  label="Q" />
 38                     <form:option value="R"  label="R" />
 39                     <form:option value="S"  label="S" />
 40                     <form:option value="T"  label="T" />
 41                     <form:option value="U"  label="U" />
 42                     <form:option value="V"  label="V" />
 43                     <form:option value="W"  label="W" />
 44                     <form:option value="X"  label="X" />
 45                     <form:option value="Y"  label="Y" />
 46                     <form:option value="Z"  label="Z" />
 47                 </form:select>
 48 
 49                 <span class="help-inline"><font color="red">*</font> </span>
 50             </div>
 51         </div>
 52         <div class="control-group">
 53             <label class="control-label">头像:</label>
 54             <div class="controls">
 55                 <form:hidden id="nameImage" path="photo" htmlEscape="false" maxlength="255" class="input-xlarge"/>
 56                 <sys:ckfinder input="nameImage" type="images" uploadPath="/academic/expert" selectMultiple="false" maxWidth="100" maxHeight="100"/>
 57             </div>
 58         </div>
 59         <div class="control-group">
 60             <label class="control-label">国家:</label>
 61             <div class="controls">
 62                 <form:select path="country" class="input-xlarge required">
 63                     <form:option value="" label=""/>
 64                     <form:options items="${fns:getDictList('country')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 65                 </form:select>
 66                 <span class="help-inline"><font color="red">*</font> </span>
 67             </div>
 68         </div>
 69         <div class="control-group">
 70             <label class="control-label">是否在首页显示:</label>
 71             <div class="controls">
 72                 <form:radiobuttons path="isShowHomepage" items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false" class="required"/>
 73                 <span class="help-inline"><font color="red">*</font> </span>
 74             </div>
 75         </div>
 76         <div class="control-group">
 77             <label class="control-label">工作单位:</label>
 78             <div class="controls">
 79                 <form:input path="orgName" htmlEscape="false" maxlength="255" class="input-xlarge "/>
 80             </div>
 81         </div>
 82         <%--<div class="control-group">
 83             <label class="control-label">所属研究机构:</label>
 84             <div class="controls">
 85                 <c:if test="${not empty expert.id }">
 86                     ${expert.studyBranch}
 87                 </c:if>
 88             </div>
 89         </div>--%>
 90         <div class="control-group">
 91             <label class="control-label">职称职务:</label>
 92             <div class="controls">
 93                 <form:input path="position" htmlEscape="false" maxlength="255" class="input-xlarge "/>
 94             </div>
 95         </div>
 96         <div class="control-group">
 97             <label class="control-label">个人简介:</label>
 98             <div class="controls">
 99                 <form:textarea path="info" htmlEscape="false" rows="4" maxlength="5000" class="input-xxlarge "/>
100             </div>
101         </div>
102         <div class="control-group">
103             <label class="control-label">研究领域:</label>
104             <div class="controls">
105                 <form:textarea path="research" htmlEscape="false" rows="4" maxlength="500" class="input-xxlarge "/>
106             </div>
107         </div>
108         <div class="control-group">
109             <label class="control-label">研究成果:</label>
110             <div class="controls">
111                 <form:textarea id="majorWorks" htmlEscape="false" path="majorWorks" rows="4"  class="input-xxlarge"/>
112                 <sys:ckeditor replace="majorWorks" uploadPath="/academic/expert" />
113             </div>
114         </div>
115         <%--<div class="control-group">--%>
116             <%--<label class="control-label">论文:</label>--%>
117             <%--<div class="controls">--%>
118                 <%--<form:textarea id="paper" htmlEscape="false" path="paper" rows="4"  class="input-xxlarge"/>--%>
119                 <%--<sys:ckeditor replace="paper" uploadPath="/academic/expert" />--%>
120             <%--</div>--%>
121         <%--</div>--%>
122 
123         <div class="control-group">
124             <label class="control-label">备注信息:</label>
125             <div class="controls">
126                 <form:textarea path="remarks" htmlEscape="false" rows="4" maxlength="255" class="input-xxlarge "/>
127             </div>
128         </div>
129         <div class="form-actions">
130             <shiro:hasPermission name="academic:expert:edit"><input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/> </shiro:hasPermission>
131             <input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
132         </div>
133     </form:form>
134 </body>

 

 

哈哈哈哈 好喜欢 哟 欢迎吐槽

 

致敬:2020年的自己 -------------------------------------------- 即使不为了什么远大理想,为了好好生活,你也得努力奋斗啊,不然别说什么风花雪月了,柴米油盐也能让你一筹莫展。