SpringMVC 表单
文本框
标签
<form:label path="name">姓名:</form:label>
文本框 <form:input />标签
<form:input path="name" />
//html
<input id="name" name="name" type="text" value=""/>
密码框 <form:password />标签
<form:password path="password" />
//html
<input id="password" name="password" type="password" value=""/>
文本域 <form:textarea />标签
<form:textarea path="address" rows="5" cols="30" >
//html
<textarea id="address" name="address" rows="5" cols="30">
复选框 <form:checkbox />标签
<form:checkbox path="receivePaper" />
/html
<input id="receivePaper1" name="receivePaper" type="checkbox" value="true"/>
<input type="hidden" name="_receivePaper" value="on"/>
复选框(多项) <form:checkboxes />标签
<form:checkboxes items="${webFrameworkList}" path="favorite" />
//html
<span>
<input id="favorite" name="favorite" type="checkbox" value="Spring MVC" checked="checked"/>
<label for="favorite1">Spring MVC</label>
</span>
····
<span>
<input id="favorite4" name="favorite" type="checkbox" value="Apache Wicket"/>
<label for="favorite4">Apache Wicket</label>
</span>
<input type="hidden" name="_favorites" value="on"/>
单选按钮 <form:radiobutton />标签
<form:radiobutton path="gender" value="M" label="男" />
<form:radiobutton path="gender" value="F" label="女" />
//html
<input id="gender1" name="gender" type="radio" value="M" checked="checked"/><label for="gender1">男</label>
<input id="gender2" name="gender" type="radio" value="F"/><label for="gender2">女</label>
多项单选按钮 <form:radiobuttons />标签
<form:radiobuttons path="favoriteNumber" items="${numbersList}" />
//html
<span>
<input id="favoriteNumber1" name="favoriteNumber" type="radio" value="1"/>
<label for="favoriteNumber1">1</label>
</span>
...
<span>
<input id="favoriteNumber4" name="favoriteNumber" type="radio" value="4"/>
<label for="favoriteNumber4">4</label>
</span>
下拉框 <form:select /> , <form:option /> 和 <form:options />标签
<form:select path="country">
<form:option value="NONE" label="Select"/>
<form:options items="${countryList}" />
</form:select>
//html
<select id="country" name="country">
<option value="NONE">请选择...</option>
<option value="US">United States</option>
<option value="CH">China</option>
<option value="MY">Malaysia</option>
<option value="SG">Singapore</option>
</select>
列表多选框 <form:select /> 及其属性 multiple=true标签
<form:select path="skills" items="${skillsList}" multiple="true" />
//html
<select id="skills" name="skills" multiple="multiple">
<option value="Struts">Struts</option>
<option value="Hibernate">Hibernate</option>
<option value="Apache Wicket">Apache Hadoop</option>
<option value="Spring">Spring</option>
</select>
<input type="hidden" name="_skills" value="1"/>
隐藏字段 <form:hidden />标签
<form:hidden path="id" value="1000"/>
//html
<input id="id" name="id" type="hidden" value="1000"/>
错误处理 <form:errors />标签
<form:errors path="*" cssClass="errorblock" element="div" />
<!--它将呈现所有输入验证的错误消息。
使用带有path =“name”的<form:errors />标记来渲染name字段的错误消息。-->
<form:errors path="name" cssClass="error" />
文件上传处理
<form:form method="POST" modelAttribute="fileUpload" enctype="multipart/form-data">
请选择一个文件上传 :
<input type="file" name="file" />
<input type="submit" value="提交上传" />
</form:form>
<!--这里使用带有value =“fileUpload”的modelAttribute属性来映射文件用服务器模型上传控件。-->
文档视图
web.xml
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Spring MVC Application</display-name>
<servlet>
<servlet-name>page</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>page</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
page-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.zl" />
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
User
public class User {
private String username;
private String password;
private String address;
private boolean receivePaper;
private String[] favorite;
private String gender;
private String favoriteNumber;
private String country;
private String [] skills;
private Integer id;
Getter Setter methods.....
}
UserController.java
@Controller
public class UserController {
@RequestMapping(value = { "/user3", "/user10" }, method = RequestMethod.GET)
public ModelAndView user() {
User user = new User();
user.setFavorite((new String[] { "Spring MVC", "Struts 2" }));
user.setGender("M");
return new ModelAndView("user", "command", new User());
}
@RequestMapping(value = "/addUser2", method = RequestMethod.POST)
public String addUser(@ModelAttribute("SpringWeb") User user, ModelMap model) {
model.addAttribute("username", user.getUsername());
model.addAttribute("password", user.getPassword());
model.addAttribute("address", user.getAddress());
if (user.isReceivePaper())
model.addAttribute("receivePaper", "是");
else
model.addAttribute("receivePaper", "否");
model.addAttribute("favorite", user.getFavorite());
model.addAttribute("gender", user.getGender());
model.addAttribute("favoriteNumber", user.getFavoriteNumber());
model.addAttribute("country", user.getCountry());
model.addAttribute("skills", user.getSkills());
model.addAttribute("id", user.getId());
return "userlist";
}
@ModelAttribute("webFrameworkList")
public List<String> getWebFrameworkList() {
List<String> webFrameworkList = new ArrayList<String>();
webFrameworkList.add("Spring MVC");
webFrameworkList.add("Spring Boot");
webFrameworkList.add("Struts 2");
webFrameworkList.add("Apache Hadoop");
return webFrameworkList;
}
@ModelAttribute("numbersList")
public List<String> getNumbersList() {
List<String> numbersList = new ArrayList<String>();
numbersList.add("1");
numbersList.add("2");
numbersList.add("3");
numbersList.add("4");
return numbersList;
}
@ModelAttribute("countryList")
public Map<String, String> getCountryList() {
Map<String, String> countryList = new HashMap<String, String>();
countryList.put("US", "United States");
countryList.put("CH", "China");
countryList.put("SG", "Singapore");
countryList.put("MY", "Malaysia");
return countryList;
}
@ModelAttribute("skillsList")
public Map<String, String> getSkillsList() {
Map<String, String> skillList = new HashMap<String, String>();
skillList.put("Hibernate", "Hibernate");
skillList.put("Spring", "Spring");
skillList.put("Apache Hadoop", "Apache Hadoop");
skillList.put("Struts", "Struts");
return skillList;
}
}
user.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理(文本域)</title>
</head>
<body>
<h2>用户信息</h2>
<form:form method="POST" action="/pageweb/addUser2">
<table>
<tr>
<td><form:label path="username">用户名:</form:label></td>
<td><form:input path="username" /></td>
</tr>
<tr>
<td><form:label path="password">密码:</form:label></td>
<td><form:password path="password" /></td>
</tr>
<tr>
<td><form:label path="address">地址:</form:label></td>
<td><form:textarea path="address" rows="5" cols="30" /></td>
</tr>
<tr>
<td><form:label path="receivePaper">订阅?</form:label></td>
<td><form:checkbox path="receivePaper" /></td>
</tr>
<tr>
<td><form:label path="receivePaper">喜欢的框架 </form:label></td>
<td><form:checkboxes items="${webFrameworkList}"
path="favorite" /></td>
</tr>
<tr>
<td><form:label path="gender">性别:</form:label></td>
<td><form:radiobutton path="gender" value="M" label="男" /> <form:radiobutton
path="gender" value="F" label="女" /></td>
</tr>
<tr>
<td><form:label path="favoriteNumber">喜欢的数字:</form:label></td>
<td><form:radiobuttons path="favoriteNumber"
items="${numbersList}" /></td>
</tr>
<tr>
<td><form:label path="country">所在国家:</form:label></td>
<td><form:select path="country">
<form:option value="NONE" label="请选择..." />
<form:options items="${countryList}" />
</form:select></td>
</tr>
<tr>
<td><form:label path="skills">技术:</form:label></td>
<td><form:select path="skills" items="${skillsList}" multiple="true" /></td>
</tr>
<tr>
<td>隐藏id</td>
<td><form:hidden path="id" value="100"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交" /></td>
</tr>
</table>
</form:form>
</body>
</html>
userlist.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理之-密码</title>
</head>
<body>
<h2>提交的用户信息</h2>
<table>
<tr>
<td>用户名:</td>
<td>${username}</td>
</tr>
<tr>
<td>密码:</td>
<td>${password}</td>
</tr>
<tr>
<td>地址:</td>
<td>${address}</td>
</tr>
<tr>
<td>是否订阅新闻</td>
<td>${receivePaper}</td>
</tr>
<tr>
<td>喜欢的技术/框架</td>
<td>
<%
String[] favorite = (String[]) request.getAttribute("favorite");
for (String framework : favorite) {
out.println(framework);
}
%>
</td>
</tr>
<tr>
<td>性别:</td>
<td>${(gender=="M"? "男" : "女")}</td>
</tr>
<tr>
<td>喜欢的数字:</td>
<td>${favoriteNumber}</td>
</tr>
<tr>
<td>国家:</td>
<td>${country}</td>
</tr>
<tr>
<td>技术:</td>
<td>
<%
String[] skills = (String[]) request.getAttribute("skills");
for (String skill : skills) {
out.println(skill);
}
%>
</td>
</tr>
<tr>
<td>隐藏id:</td>
<td>${id}</td>
</tr>
</table>
</body>
</html>