spring mvc的几种使用方式1

Posted 猫二哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc的几种使用方式1相关的知识,希望对你有一定的参考价值。

1将请求映射到方法上

//get方式的rest风格请求,路径带有参数
@RequestMapping("/accounts/username")
//使用正则表达式
@RequestMapping("/accounts/username:.*"
//根据foo参数的有无匹配请求
@RequestMapping(parameters="foo")
@RequestMapping(parameters="!foo")
//根据参数的值匹配请求
@RequestMapping(parameters="foo=123")
//通过判断有无头信息匹配请求
@RequestMapping(headers="Foo-Header")
@RequestMapping(headers="!Foo-Header")

//根据头信息的值判断
@RequestMapping(headers="content-type=text/*")

2处理请求数据

//获取查询字符串参数,cookie,httpheader数据
@RequestMapping(method=GET)
public void foo(@RequestParam("q") String q, @CookieValue("c") String c, @RequestHeader("h") String h) 


//如果变量名和参数名一样,可以省略
public void foo(@RequestParam String q, @CookieValue c, @RequestHeader h) 


public void foo(String q,String q2) 



post方法获取参数
@RequestMapping(method=POST)
public void foo(@RequestParam String name, @RequestParam creditCardNumber, @RequestParam expirationDate) 



//使用实体类匹配参数,name与属性名要一致
@RequestMapping(method=POST)
public void foo(CreditCard creditCard) 
    // POST /creditcard/1
    //      name=Bond
    //      creditCardNumber=1234123412341234
    //      expiration=12-12-2012


//如果是Json字符串,并且和实体类对应key和属性名一样
@RequestMapping(method=POST)
public void createAccount(@RequestBody Account account) 
    // Spring MVC

3响应请求

@RequestMapping(value="/username", method=GET)
@ResponseBody
public  Account getAccount(@PathVariable String username) 
    return accountRepository.findAccountByUsername(username);

4异常处理

@Controller
@RequestMapping("/accounts")
public class AccountController 

    @ResponseStatus(NOT_FOUND)
    @ExceptionHandler(NoResultException.class)
    public void handle() 
        // ...
    

如果在handle中抛出了异常NoResultException,那么就会捕获到并且处理然后返回一个404错误。

以上是关于spring mvc的几种使用方式1的主要内容,如果未能解决你的问题,请参考以下文章

java之spring mvc之Controller配置的几种方式

Spring MVC中返回JSON数据的几种方式

技术Spring MVC 中获取session的几种方法

Spring MVC 的请求参数获取的几种方法

MVC Controller传值到View的几种方式总结

asp.net MVC前台View页面向后台Controller控制器传递数据的几种方式