springmvc-3,映射请求

来源:互联网 发布:2018志鸿优化设计答案 编辑:程序博客网 时间:2024/06/01 10:04

springmvc通过@Controller注解和@RequestMapping注解来编写一个handler,这样根据注解就可以来映射不同的请求

@RequestMapping注解

使用RequestMapping注解来映射请求,RequestMapping有四个属性,
1. value 对应请求的URL
2. method 对应请求的方法(GET,POST,PUT,DELETE…)
3. params 对应请求的参数
4. headers 对应请求的头(例如:Accept-Language)

可根据这四个参数的不同组合来映射请求。

@Controller@RequestMapping("/AAA")public class SpringMVCTest {    /**     * *@RequestMapping还可以用来修饰类     *      * 修饰类的时候,提供初步的请求映射信息     *      * 修饰方法的时候,提供进一步的请求映射信息     *      * 当没有修饰类的只修饰了方法的时候,url为相对于web应用根目录的路径     *      * 当两个修饰了的时候为:/类/方法(例如:这里为/AAA/testRequestMapping)     */    // 访问的URL:AAA/testRequestMapping    @RequestMapping("/testRequestMapping")    public String testRequestMapping() {        System.out.println("testRequestMapping...");        return "success";    }    /**     * 除了根据url来映射请求外,还可以根据请求方法,请求参数,请求头来映射请求     *      * RequestMapping的vlaue,method,param,heads分别对应请求的URL,请求方法,请求参数,请求头     *      * 可使用这四个条件来映射请求,也可以联合的使用这四个来映射请求,他们之间的关系为与     */    /**     * 例如,使用请求方法来映射请求     *      * 这里只能响应url为/testMethod且为POST的请求     *      * @return     */    // 访问的URL:<form action="AAA/testMethod" method="post">    //              <button type="submit">Submit</button>    //         </form>    @RequestMapping(value = "/testMethod", method = RequestMethod.POST)    public String testMethod() {        System.out.println("testMethod");        return "success";    }    /**     * 还可以使用params和headers根据请求参数和请求头来映射请求     *      * params和headers还支持简单的表达式:     *      * params:标识请求必须有这个参数     *      * !params:表示 请求不能含有这个参数     *      * params!=vlaue 表示请求必须含有这参数,但是参数值不能为value     *      * params = vlaue 表示请求必须包含这个参数,且请求值必须为value     */    // 访问的URL:AAA/testParamsAndHeader?username=aa&age=20    @RequestMapping(value = "/testParamsAndHeader", method = RequestMethod.GET, params = { "username",            "age!=20" }, headers = { "Accept-Language=zh-CN,zh;q=0.8" })    public String testParamsAndHeader() {        System.out.println("testParamsAndHeader");        return "success";    }}

ant风格的URL

/**     * 除此之外,springmvc还支持ant风格资源地址的映射     *      * ant风格:     *      * ?匹配文件中的一个字符,     *      * 例如:/user/createUser??匹配/user/createuserAA,/user/createuserBB等URL     *      * *匹配文件名名中的任意一个字符,     *      * 例如:/user/1*1/createUser匹配/user/aaa/createUser,/user/bbb/createuser等URL     *      * **匹配多层路径     *      * 例如:/user/1**1/createUser匹配/user/AAA/BBB/createUser这样的URL     *      */    /**     * spring 还可以使用pathVariable来将URL中的占位符映射到handle的参数中(为了REST风格的URL而生)     *      *      */    //访问的URL:AAA/testPathVariable/1122    @RequestMapping(value = "/testPathVariable/{id}")    public String testPathVariable(@PathVariable(value = "id") Integer id) {        System.out.println("testPathVariable:" + id);        return "success";    }
0 0
原创粉丝点击