SpringMVC一些笔记

在RequestMapping中:

可以使用params和headers来更精确的映射请求,其支持简单的表达式

Ant风格资源地址支持3种匹配符 ?匹配一个字符 *匹配任意字符 **匹配多层路径

@PathVariable可以来映射URL中的占位符到目标方法德参数中

REST风格的URL,CRUD为例, 新增 /order POST、修改/order/1 PUT、获取 /order/1 GET、删除/order/1 DELETE

发送PUT和DELETE请求:配置HiddenHttpMethodFilter,需要在发送POST请求时携带一个name="_method"的隐藏域

值为DELETE或PUT

可以使用@RequestParam来映射参数,value值即为请求参数德参数名,required设置该参数是否必须,default设置默认值

@RequestHeader可以映射请求头,其用法同@RequestParam

@CookieValue用来映射一个Cookie值用法同@RequestParam

SpringMVC会按参数名和POJO属性名进行自动匹配,自动为该对象填充属性值,且支持级联属性

 

可以使用Servlet原生的API作为目标方法的参数具体支持类型:HttpServletRequest,HttpServletResponse,HttpSession

,java.security.Principal,Locale InputStream,OutputStream,Reader,Writer

 

请求参数类型可以是ModelAndView,Map

 

@SessionAttributes除了可以通过属性名指定需要放在会话中的属性外(实际上使用的是value属性值),还可以通过模型属性的对象类型

指定哪些模型属性需要放到会话中(实际上使用的是types属性值),该注解只能放在类上面,不能修饰方法

 

@ModelAttribute标记的方法会在每个目标方法执行之前被SpringMVC调用

@ModelAttribute注解也可以修饰目标方法POJO类型的入参,其value值有如下作用:

1、SpringMVC会使用value属性值在implicitModel中查找对应的对象,若存在则会直接传入到目标方法的入参中

2、SpringMVC会以value为key,POJO类型的对象value,存入到request中

 

返回的字符串带有forward: 或redirect: 前缀时,SpringMVC会对其进行特殊处理将forward: 或redirect: 当成指示符,

将其后面的字符串当成URL来处理

 

在@ExceptionHandler方法的入参中可以加入Exception类型的参数,该参数即对应发生的异常对象

@ExceptionHandler方法的入参中不能传入Map,若希望将异常信息传导到页面上,需要使用ModelAndView作为返回值

@ExceptionHandler方法标记的异常有优先级的问题

@ControllerAdvice,如果在当前Handler中找不到@ExceptionHandler标记的方法来处理当前方法出现的异常,则将去@ControllerAdvice标记

的类中查找@ExceptionHandler标记的方法来处理异常

 

SpringMVC对比Structs2

1、SpringMVC入口是Servlet,而Structs2是Filter

2、SpringMVC会稍微比Structs2快些,SpringMVC是基于方法设计的,Structs2是基于类的,每次请求都会实例一个Action

3、SpringMVC更加简洁,开发效率较于Structs2高,支持JSR303,处理ajax请求更方便

4、Structs2的OGNL表达式使页面的开发效率相比于SpringMVC更高些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值