技术干货首页投稿(暂停使用,暂停投稿)

框架之SpringMVC注解

2017-08-01  本文已影响0人  vaneL
controller方法的返回值
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("itemsList",itemsList);
return modelAndView;
- 表示返回逻辑视图[jsp路径=前缀+逻辑视图名+后缀]
return "items/editItems";
- redirect重定向
return "refirect:queryItems.action";
- forward页面转发
return "forward:queryItems.action";

@Controller 负责注册一个bean
@RequestMapping 为控制器指定可以处理哪些 URL 请求
@RequestBody 用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上
@ResponseBody 用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区
@ModelAttribute 在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参将方法入参对象添加到模型中
@RequestParam 可以把请求参数传递给请求方法
@PathVariable 绑定 URL 占位符到入参
@ExceptionHandler 出现异常时会执行该方法
@ControllerAdvice 使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常

@RequestMapping

value: 指定请求的实际地址
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

@ModelAttribute

@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里。
如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法。

@RequestParam

test(String name),如果没有name 参数不会报错
test(@RequestParam String name),没有name 参数会报错,(也可以设置required = false)
test(@RequestParam("userName") String name)
第三种跟第二种的区别是 请求的参数名userName转换成方法的参数name

全局异常1:

@ControllerAdvice
public class testControllerAdvice {
    @ExceptionHandler
    public ModelAndView exceptionHandler(Exception ex){
        ModelAndView mv = new ModelAndView("error");
        mv.addObject("exception", ex);
        System.out.println("in testControllerAdvice");
        return mv;
    }
}

全局异常2:

<!-- configure SimpleMappingExceptionResolver -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <prop key="java.lang.ArithmeticException">error</prop>
        </props>
    </property>
</bean>
上一篇下一篇

猜你喜欢

热点阅读