客户端请求参数的格式是: name=value&name=value.....
服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数:
基本类型参数
POJO类型参数
数组类型参数
集合类型参数
获得基本类型参数
Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。


获得POJO类型参数

获得数组类型参数

获得集合数据类型参数
import java.util.List;
public class Vo {
private List<User> userList;
@Override
public String toString() {
return "Vo{" +
"userList=" + userList +
'}';
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
@RequestMapping("/quick11")
@ResponseBody//告诉SPring框架, 不进行视图跳转, 直接进行数据响应
public void save11(Vo vo){
System.out.println(vo);
}
<body>
<form action="${pageContext.request.contextPath}/user/quick11" method="post">
<%-- 要表明第几个User对象的name和age--%>
<input type="text" name="userList[0].username"><br/>
<input type="text" name="userList[0].age"><br/>
<input type="text" name="userList[1].username"><br/>
<input type="text" name="userList[1].age"><br/>
<input type="text" name="userList[2].username"><br/>
<input type="text" name="userList[2].age"><br/>
<input type="text" name="userList[3].username"><br/>
<input type="text" name="userList[3].age"><br/>
<input type="submit" value="提交">
</form>
</body>

直接访问会出现找不到资源的情况需要对静态资源访问权限开放
第一种开放资源的访问权限 第二种交给原始容器去匹配寻找静态资源

运行时汉字出现乱码需要在WEB.XML配置全局过滤的filter
<!-- 配置全局过滤的filter-->
<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>
参数绑定注解@requestParam

获得Restful等个的参数
自定义类型转换器

//①
public class DataConverter implements Converter<String, Data> {
@Override
public Data convert(String source) {
//将日期字符串转换为日期对象 然后返回
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Data data = null;
try {
Date date = format.parse(source);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return data;
}
}
//②
<!-- 声明转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.itheima.converter.DataConverter"/>
</list>
</property>
</bean>
</beans>
//③
<!-- mvc的注解驱动-->
<mvc:annotation-driven conversion-service="conversionService"/>
获得Servlet相关API
