spring中的参数传递

jsp页面的post请求,后台进行接收:

     @RequestMapping("/userLogin")

     public String login(

              // 接收的post传送数据请求

              @RequestParam("userName")

              String userName,

              @RequestParam("userPwd")

              String userPwd){

          System.out.println(userName+","+userPwd);

          User userLogin = userService.doLogin(userName,  userPwd);

          if(userLogin!=null){

              return "success";

          }else{

              return "login";

          }

 

jsp页面的get请求,后台进行接收:

     @RequestMapping("/color")

     public ModelAndView showColor(

              // 这个位置的@RequestParam 后面是否需要添加参数,取决于参数名是否与get请求中的名称一致,一致则可以省略,反之,则需要添加名称进行校正

              @RequestParam

              String color,

              @RequestParam

              int id

              ){

          /*ModelAndView mv = new ModelAndView();

          mv.setViewName("color");

          等同于下面的方法:

          */

          ModelAndView mv = new ModelAndView("color");

          System.out.println("进入color后台!");

          System.out.println("color:"+color+",id:"+id);

          // 这个位置将接受的参数进行传递至jsp页面中

          mv.addObject("color",color);

          mv.addObject("id", id);

          return mv;

          

     }

 

tips:从上面的结构来看后台在处理get post请求的时候,处理的方法时候一样的,平时工作时候也是可以只存一个方法的.

但是也是有例外的,如果非要区分两种请求的方式,可以在requestmapping后面增加属性:

 

 

@RequestMapping属性:

@RequestMapping(value="/color",method=RequestMethod.GET  用来区分get post请求,params={"color","id"} 规定需要哪些参数)

params 属性一般是不需要进行加的,加载之后需要注意与下文的 @RequestParam 注解属性 的冲突性.

参考: springMVC请求注解@RequestMapping各个属性值 - 若谷先生 - 博客园

 

@RequestParam 注释属性:

@RequestParam(value="color",required=false,defaultValue="")

默认情况下只有一个参数的时候value名可以省略,

required属性是指该参数能否为空,如果为空,则为null,此要求参数类型必须为包装类型,否则报错

defaultvalue属性则为默认值属性,在没有参数值的情况下使用默认值

 

后台在响应页面时,可以通过modelandview / map / model(推荐) / httpsession,需要注意的是每个部分的作用范围不同

重定向的时候作用域不够的将会出现参数丢失的现象 

你可能感兴趣的:(spring中的参数传递)