转载

使用@RequestMapping映射请求—SpringMVC

SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求,DispatcherServlet截获请求后,就通过控制器上的@RequestMapping提供的映射信息确定请求所对应的方法。@RequestMapping可以在类定义处和方法定义处标注。

@RequestMapping标注位置

@RequestMapping修饰方法

示例代码:

package com.gisxx.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorld {

    @RequestMapping("/helloworld")
     public String hello(){
        System.out.println("hello,GISXXCOM!!");        
        return "success";
    }
}

该控制器接受的请求路径为”/helloworld”

@RequestMapping修饰类

示例代码:

package com.gisxx.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/test")public class HelloWorld {
    @RequestMapping("/helloworld")
    public String hello(){

        System.out.println("hello,GISXXCOM!!");
        return "success";
    }
}

该控制器接受的请求路径为“/test/helloworld”

总结:

  • 类定义处 :提供初步的请求映射信息。相对于web应用的根目录。

  • 方法定义处 :提供进一步的细分映射信息。相对于类定义处的url,若类定义处未标注@RequestMapping,则相对web应用根目录。

@RequestMapping指定请求信息

@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数以及请求头映射请求。

@RequestMapping的value、method、params、headers分表代表 请求URL请求方式请求参数请求头 的映射条件,他们之间是“与”的关系,联合使用多个条件让请求映射更加精细化。

使用method属性来指定请求方式

  • RequestMethod.POST:POST请求映射

  • method=RequestMethod.GET:GET请求映射

package com.gisxx.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HelloWorld {
    @RequestMapping(value="/helloworld",method=RequestMethod.POST)
    public String hello(){
        System.out.println("hello,GISXXCOM!!");
        return "success";
    }
}

该控制器指定了请求方式为POST

使用params来指定请求参数

  • param1:必须包含参数param1

  • !param2:必须不包含参数param2

  • !param3=value1:必须包含参数param3但值不能为value1

  • {“param4=value2”,“param5”}:必须包含param4、param5参数,其中param4的值必须为value2

示例代码:

package com.gisxx.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HelloWorld {
    @RequestMapping(value="/helloworld",params={"age=1","name=xx"})
    public String hello(){

        System.out.println("hello,GISXXCOM!!"); 
        return "success";
    }
}

该控制器指定了请求参数必须包含:age=1和name=xx。

使用headers属性指定请求头的使用方式和params基本相似

使用@RequestMapping映射请求—SpringMVC

原文  http://mp.weixin.qq.com/s/BIda97A7m_B2sk3X48FvUw
正文到此结束
Loading...