Spring MVC知识点(三)
@RequestMapping注解
1、映射请求
作用:为控制器指定可以处理哪些URL请求在控制器的类定义及方法定义处都可标注
类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录
方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的URL相对于WEB应用的根目录 DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。
2、修饰类
作用:提供初步的请求映射信息,相对于WEB应用的根目录
3、修饰方法
作用:提供进一步的细分映射信息,相对于类定义处的 URL。
@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数及请求头映射请求
@RequestMapping的value、method、params及headers分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。
params和headers支持简单的表达式
controller方法的返回值
1、返回ModelAndView
controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。
2、返回字符串
1)含义:
a、表示返回逻辑视图名
b、redirect重定向
c、forward页面转发
2)添加参数:
a、HttpServletRequest
b、通过request对象获取请求信息
c、HttpSession
d、通过session对象得到session中存放的对象
e、Model/ModelMap
f、ModelMap是Model接口的实现类,将model数据填充到request域,向页面传递数据
3) 返回逻辑视图名
真正视图(jsp路径)=前缀+逻辑视图名+后缀
4)redirect重定向
特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request( request无法共享)
5)forward页面转发
通过forward进行页面转发,浏览器地址栏url不变,request可以共享。
6)返回void
当返回void时,在controller方法形参上可以定义request和 response,使用request或response指定响应结果:
使用request转向页面,
可以通过response页面重定向
可以通过response指定响应结果
参数绑定
1、过程:
2、默认支持的类型
HttpServletRequest
HttpServletResponse
HttpSession
Model/ModelMap
3、 简单类型绑定
1)通过@RequestParam对简单类型的参数进行绑定。
2)如果不使用@RequestParam,要求request传入参数名称和controller方 法的形参名称一致,方可绑定成功。
3)如果使用@RequestParam,不用限制request传入参数名称和controller 方法的形参名称一致。
4、POJO类型绑定
1)将pojo对象中的属性名与传递进来的参数名对应
如果传进来的参数名称和对象中的属性名称一致,则将参数值设置在pojo对象中
5、自定义参数绑定
根据业务需求使用自定义参数绑定。
需要向处理器适配器中注入自定义的参数绑定组件。
对于controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定。
6、 集合类型绑定
支持字符串数组、List、Map