使用@RequestMapping映射处理请求:
一. Spring MVC使用@RequestMapping注解为控制器指定可以处理的URL请求
二. 在控制器的类定义及方法定义处都可标注@RequestMapping
类定义处:提供初步的请求映射信息。相对于web项目的根目录
方法处: 提供进一步的细分映射信息,相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于web目录下的根目录
三. DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息请求所对应的处理方法
使用RequestMapping修饰类;
@RequestMapping("/say")
@Controller
class testClass{
@RequestMapping("/sayHello")
public String sayHello(){
return "hello";
}
}
<a href="say/sayHello" >test</a>
映射请求参数,请求头或请求参数:
- @RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法请求参数及请求头映射请求。
- @RequestMapping的value、method、params、heads分别表示请求URL、请求方法、请求参数及请求头的映射条件,它们之间是与2的关系、联合使用多个条件可以让请求映射更加精准化。
- params和headers支持简单的表达式:
*. param1: 表示请求必须要包含名为param1的请求参数;
*. !param1: 表示请求必须不包含名为param1的请求参数;
*. param1 != value1:表示请求必须要包含名为param1的请求参数、但其值不能为value1;
*. {"param1 = value1","param2"}: 表示请求必须要包含名为param1和param2的两个请求参数、且param1的参数必须为value1;
//URL和请求方式
@RequestMapping(value="/url ,method=RequestMethod.POST,");
//请求参数
@RequestMapping(value="/url ,param={"user","password"},");
@RequestMapping("/pathV")
@Controller
public class PathVaribleTest {
@RequestMapping(value="/one/{id}",method=RequestMethod.GET,params= {"name"})
public String toNum(@PathVariable(value="id") Integer id) {
System.out.println(id);
return "success";
}
}
<a href="pathV/one/1?name=laishuai">@PathVariable测试</a>
Ant风格的请求映射
- Ant风格的资的资源地址支持3种匹配符
- ?:匹配文件名中的一个字符
- *:匹配文件名的任意字符
- **: 匹配多层路径
网友评论