Springmvc基本操作
1.响应请求的方式
1.1ModelAndView
1.2返回void
返回值为void时,方法中可以不用做任何返回,例如下面代码:
此时,在浏览器端请求/test1接口,springmvc会默认去查找和方法同名的页面作为方法的视图返回。 如果确实不需要该方法返回页面,可以使用@ResponseBody注解,表示一个请求到此为止。
1.3返回一个字符串
返回一个真正的字符串 在页面显示
返回一个跳转页面名称 不需要加@ResponseBody
重定向跳转 redirect关键字
1.4通过Request和Response对象处理
2.参数绑定
2.1基本数据类型
Java基本数据类型+String
使用基本数据类型时,参数的名称必须和浏览器传来的参数的key一致,这样才能实现自动映射
如果参数名和浏览器传来的key不一致,可以通过@RequestParam来解决。如下
加了@RequestParam之后,如果未重新指定参数名,则默认的参数名依然是原本的参数名。
通过也要注意,添加了@RequestParam注解后,对应的参数默认将成为必填参数。
此时,如果不想传递该参数,需要明确指定,指定方式有两种:
- 通过required属性指定该参数不是必填的
通过defaultValue属性给该参数指定一个默认值
2.2对象
2.3数组,集合
2.4Date类型
接收数据类型是Date类型的需要通过转换器进行接收
创建自定义的转换器:
3.响应数据
3.1ModelAndView
3.2HttpServletRequest
3.3HttpSession
3.4Map
3.5Model
3.6ModelMap
注意:@SessionAttributes将数据保存在session作用域中,上面几个传值都是request作用域
4.post方式中文乱码问题处理
<!-- spring框架提供的字符集过滤器 -->
<!-- spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题 -->
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</init-param>
encodingFilter /* ```