springMVC参数传递方式

1.springMVC参数传递方式

1.2动态参数绑定

 

 2.代码

 1 package com.cn.param;
  2 
  3 import com.sun.org.apache.xpath.internal.operations.Mod;
  4 import org.springframework.stereotype.Controller;
  5 import org.springframework.ui.ModelMap;
  6 import org.springframework.web.bind.annotation.ModelAttribute;
  7 import org.springframework.web.bind.annotation.PathVariable;
  8 import org.springframework.web.bind.annotation.RequestMapping;
  9 import org.springframework.web.bind.annotation.RequestParam;
 10 
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13 
 14 /**
 15  * @Author hxy
 16  * @Description
 17  * @Date 2023/9/13 11:08
 18  * @Version 1.0
 19  */
 20 @Controller
 21 @RequestMapping("param")
 22 public class ParamController {
 23 
 24     /**
 25      * 如果方法内部需要使用request,session,respone等对象,只需要在方法的形参中定义即可。
 26      * 需要哪个对象就定义那个,SpringMVC 在调用方法会自动将对象注入进来
 27      * @return {@link String}
 28      */
 29     @RequestMapping("/test1.do")
 30     public String test1(HttpServletRequest request,
 31                         HttpServletResponse response, ModelMap modelMap){
 32         String name = request.getParameter("name");
 33         String age = request.getParameter("age");
 34         String msg = String.format("name:%s,age:%S",name,age);
 35         modelMap.addAttribute("msg",msg);//等价于request.setAttribute("msg",msg);
 36 
 37         return "result";
 38     }
 39 
 40     /**
 41      * Spingmvc 调用方法之前,会根据方法参数名称从request请求中获取参数值
 42      * 过程:
 43      * 1.将request.getParameter("name") 返回值传递给name参数
 44      * 2.Ineger.valueOf(request.getParameter("age"))返回值传递给age参数
 45      * 注意:表单控件的name属性名称要和方法参数名称要相同才能绑定成功。否则绑定失败
 46      * @param name
 47      * @param age
 48      * @param modelMap
 49      * @return {@link String}
 50      */
 51     @RequestMapping("/test2.do")
 52     public String test2(String name,Integer age,ModelMap modelMap){
 53         String msg = String.format("name:%s,age:%S",name,age);
 54         modelMap.addAttribute("msg",msg);
 55         return "result";
 56     }
 57 
 58 
 59     /**
 60      * 如果方法的参数名称和表单控件的name属性名称不一致,
 61      * 则可以通过@RequestParam注解设置表单控件name属性名
 62      * @param name
 63      * @param age
 64      * @param modelMap
 65      * @return {@link String}
 66      */
 67     @RequestMapping("/test3.do")
 68     public String test3(@RequestParam("pname") String name,
 69                         @RequestParam("page") Integer age, ModelMap modelMap){
 70         String msg = String.format("name:%s,age:%S",name,age);
 71         modelMap.addAttribute("msg",msg);
 72         return "result";
 73     }
 74 
 75     /**参数绑定时如果表单控件太多则可以绑定对象,对象的属性名和控件的name属性名必须一致
 76      * @ModelAttribute注解:用于自动将参数绑定对象放入ModelMap中
 77      * @param userinfoDto
 78      * @return {@link String}
 79      */
 80     @RequestMapping("/test4.do")
 81     public String test4(@ModelAttribute("msg") UserinfoDto userinfoDto){
 82         System.out.println(userinfoDto);
 83 //        modelMap.addAttribute("msg",userinfoDto);
 84         return "result";
 85     }
 86 
 87     /**
 88      * 参数绑定时如果表单控件太多太杂则可以绑定多个对象,对象的属性名和控件的name属性名
 89      * @param userDto
 90      * @param userExtrainfoDto
 91      * @return {@link String}
 92      */
 93     @RequestMapping("/test5.do")
 94     public String test5(@ModelAttribute("msg") UserDto userDto,UserExtrainfoDto userExtrainfoDto){
 95         System.out.println(userDto);
 96         System.out.println(userExtrainfoDto);
 97         return "result";
 98     }
 99 
100     /**使用组合对象绑定控件数据name
101      * @param userResumeDto
102      * @return {@link String}
103      */
104     @RequestMapping("/test6.do")
105     public String test6(@ModelAttribute("msg") UserResumeDto userResumeDto){
106         System.out.println(userResumeDto);
107         return "result";
108     }
109 
110     /**动态url 地质参数绑定
111      * url:/param/v1(参数1)/binge(参数2)/test7.do
112      * @return {@link String}
113      */
114     @RequestMapping("/{p1}/{p2}/test7.do")
115     public String test7(@PathVariable("p1") String p1, @PathVariable("p2") String p2,
116                         ModelMap modelMap){
117         String msg = String.format("p1:[%s],p2[%s]",p1,p2);
118         System.out.println(msg);
119         modelMap.addAttribute("msg",msg);
120         return "result";
121 
122     }
123 }

 

  

 

posted @ 2023-10-01 20:04  空嘘一场  阅读(60)  评论(0)    收藏  举报