springMVC学习总结(二)路径映射和请求方法限定

时间:2021-11-09 03:28:54

springMVC学习总结(二)路径映射和请求方法限定

一、路径映射

无参数的访问路径

  • 对springmvc项目的访问路径,是由根路径和子路径组成;在注解式开发中,根路径标注在类名之上,子路径标注在方法名之上,例:

    @Controller
    @RequestMapping(value = "/rootpath")
    public class Demo01Controller {
    @RequestMapping(value = "/childpath.action")
    public ModelAndView test(){
    System.out.println("访问成功!");
    ModelAndView mv = new ModelAndView();
    mv.addObject("message", "测试成功");
    mv.setViewName("hello");
    return mv;
    }
    }

    在这个例子中:
    根路径是类名上方的 RequestMapping(value = "/rootpath")
    方法名上方的 RequestMapping(value = "/rootpath")
    因此该方法的访问路径是:http://localhost:8080/rootpath/childpath.action

    路径中有参数的访问路径

  • 如果我们想通过url传递一个或多个参数到后台,在不考虑安全问题的情况下可以使用url的方式携带参数访问,比如我们要获取一个id值,我们后台编码如下:

    @Controller
    @RequestMapping(value = "/rootpath",method = RequestMethod.GET)
    public class Demo01Controller {

    @RequestMapping(value = "/childpath/{id}")
    public ModelAndView test(@PathVariable String id){
    System.out.println("get提交的参数为:"+id);
    ModelAndView mv = new ModelAndView();
    mv.addObject("message", "测试成功");
    mv.setViewName("hello");
    return mv;
    }
    }
    此时的访问路径是: http://localhost:8080/rootpath/childpath.action/3.action
    这个url中传递的参数值是 id=1
    • 当有多个参数的时候,只要方法的参数名与路径中的参数命名一一对应便可一一对应的取到值,如:

      @Controller
      @RequestMapping(value = "/rootpath",method = RequestMethod.GET)
      public class Demo01Controller {

      @RequestMapping(value = "/childpath/{id}/{username}")
      public ModelAndView test(@PathVariable String id,@PathVariable String username){
      System.out.println("get提交的参数id为:"+id+"用户名为:"+username);
      ModelAndView mv = new ModelAndView();
      mv.addObject("message", "测试成功");
      mv.setViewName("hello");
      return mv;
      }
      }

    此时的访问路径是: http://localhost:8080/rootpath/childpath.action/3/sunwukong.action
    这个url中传递的参数值是 id=1,用户名为:sunwukong

二、方法限定