- Annotation
@Controller:用于标识是处理器类;
@RequestMapping:请求到处理器功能方法的映射规则;
@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;
@PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定
@ModelAttribute:请求参数到命令对象的绑定;
@SessionAttributes:用于声明session级别存储的属性
@CookieValue:绑定Cookie数据值
注:关于ModelAttribute和SessionAttribute详见SpringMVC重要的注解 - URL路径映射
1.@RequestMapping(value={"/user1", “/user2/create”}):多个URL路径可以映射到同一个处理器的功能处理方法
2.@RequestMapping(value=“/users/{userId}”):{×××}是占位符, 请求的URL可以是 “/users/123456”或“/users/abcd”,通过后面讲的通过@PathVariable可以提取URI模板模式中的{×××}中的×××变量
3.@RequestMapping(value=“/users/{userId}/create”):请求的URL可以是“/users/123/create”
4.@RequestMapping(value="/users/{userId}/abc/{name}"):这样也是可以的,请求的URL可以是“/users/001/abc/itany”
5.@RequestMapping(value="/users?"): 匹配一个字符,如可以匹配/ users1,但不能匹配/ users或/ users12
6.@RequestMapping(value="/users*"):可匹配“/users”或“/usersa”,但不匹配“/users /abc”;
7.@RequestMapping(value="/users/*"):可匹配“/ users/abc”,但不匹配“/usersabc”;
8.@RequestMapping(value=“/users//”):匹配零个或多个路径, “/users/abc/abc/…/”
9.@RequestMapping(value="/users //{userid}"):可匹配“/ users /abc/abc/123”或“/users/12
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.entity.Person;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@Controller//用于标识是处理器类
public class HelloAnnotation {
@RequestMapping(value="/m1")//请求到处理器功能方法的映射规则
public ModelAndView m1(HttpServletRequest request,HttpServletResponse response,HttpSession session){
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
return mv;
}
@RequestMapping(value="/m2")
public ModelAndView m2(){
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
mv.addObject("name", "张卫健");
return mv;
}
@RequestMapping(value="/m3")
public ModelAndView m3(HttpServletRequest request){
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
request.setAttribute("name", "张卫健2");
return mv;
}
@RequestMapping(value="/m4")
public String m4(String name,String sex){
System.out.println(name+","+sex);//可以在控制台输出地址栏参数
return "index";//视图解析器自动解析到/index.jsp
}
@RequestMapping(value="/m5")
public String m5(Person p){
System.out.println(p.getName()+","+p.getSex());
return "index";
}
@RequestMapping(value="/m6")
public String m6(@RequestParam("n") String name){
//请求参数到处理器功能处理方法的方法参数上的绑定
System.out.println(name);//地址栏的n参数,绑定到此处的参数name
return "index";
}
@RequestMapping(value="/m7/{p1}/{p2}")
public String m7(@PathVariable("p1") String name,@PathVariable("p2") String sex){
//请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定
//访问地址写成这样http://localhost:8080/SpringMVCDemo/m7/zhangsan/28
System.out.println(name+","+sex);
return "index";
}
@RequestMapping(value="/m8*")
public String m8(@CookieValue(value="JSESSIONID",defaultValue="bwf") String cookie){
//@CookieValue绑定Cookie数据值
System.out.println(cookie);//B780BD3645983A615692CCA9CAF066E3
return "index";
}
}