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