SpringMvc Controller请求传参方式总结
2021-03-22 13:24
标签:pos div content bin 传递数据 数值 传参 post servlet 参数拼接在url后面,以Get方式传参 GET url= http://localhost:8080/geturlp?name=zhangsan 或者 以POST的表单提交的方式 x-www-form-urlencoded POST url=http://localhost:8080/geturlp curl -d "name=zhangsan" http://localhost:8080/geturlp GET url=http://localhost:8080/getdefaultParam?username=zhangsan&password=1223 或者 POST url=http://localhost:8080/getdefaultParam curl -d "username=zhangsan&password=1223" @RequestParam不能传递空值,如果需要传递空值,可以设置默认值defaultValue或者required=fals GET url=http://localhost:8080/getParam?username=zhangsan&password=123123 或者 POST url=http://localhost:8080/getParam curl -d "username=zhangsan&password=123123" 此时能够自动把参数封装到形参的对象上 注意: GET url=http://localhost:8080/getObj?name=zhangsan&age=12&score=12 或者 POST url=http://localhost:8090/mbank/test/param/getObj curl -d "name=zhangsan&age=12&score=12" http://localhost:8090/mbank/test/param/getObj 注意: 注意: 直接摘抄,没有做实验 当前台页面传来的参数是参数名相同,参数值不同的多个参数时,可以直接封装到方法的数组类型的形参中,也可以直接封装到对象的集合属性中。 比如批量删除时传来的参数。 Restful是一种软件架构风格,严格上说是一种编码风格,其充分利用 HTTP 协议本身语义从而提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,该风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 在后台,RequestMapping标签后,可以用{参数名}方式传参,同时需要在形参前加注解@PathVarible,假如前台的请求地址为localhost:8080/delete/3 GET url=http://localhost:8080/resultful/zhangsan/query 当然也可以定义不同的名字 注意: @PathVariable默认可以省略参数名字的,但是在Feign调用的时候最好带上,不然会出问题。记录下,以前好像碰到过这样的问题。(@PathVariable("name") String name) SpringMvc Controller请求传参方式总结 标签:pos div content bin 传递数据 数值 传参 post servlet 原文地址:https://www.cnblogs.com/fengxueyi/p/13876140.html1. 请求的值绑定在request中
1 @RequestMapping(value = "/geturlp")
2 @ResponseBody
3 public String getParameterOfBasic(HttpServletRequest request){
4 String name = request.getParameter("name");
5 return name;
6 }
2.简单类型参数和RequestParam注解
1 @RequestMapping(value = "/getdefaultParam")
2 @ResponseBody
3 public String getdefaultParam(String username,String password){
4 return username +":" + password;
5 }
1 @RequestMapping(value = "/getParam")
2 @ResponseBody
3 public String getParam(@RequestParam(value = "username",required = false) String name,
4 @RequestParam(value = "password",defaultValue = "12312312") String pwd){
5 return name +":" + pwd;
6 }
3. 对象传参
1 @RequestMapping(value = "/getObj")
2 @ResponseBody
3 public String getObjBindObj(Student student){
4 return student.toString();
5 }
1 @RequestMapping(value = "/getObj")
2 @ResponseBody
3 public String getObjBindObj(@ModelAttribute("stu") Student student){
4 return student.toString();
5 }
1 @Data
2 @ToString
3 class Student{
4 private String name;
5 private int age;
6 private String score;
7 }
8
9 @RequestMapping(value = "/getObj")
10 @ResponseBody
11 public String getObjBindObj(@RequestBody Student student){
12 return student.toString();
13 }
4. 数组和List集合类型参数
1 RequestMapping("/test04")
2 public ModelAndView test04(String id[]){
3 /*对于参数名相同的多个请求参数,可以直接使用数组作为方法的形参接收
4 可以使用对象中的集合属性接收*/
5 for (String i : id) {
6 System.out.println(i);
7 }
8 return null;
9 }
1 @RequestMapping("/test05")
2 public ModelAndView test05(Student student){
3 System.out.println(student.getId().size());
4 for (String i : student.getId()) {
5 System.out.println(i);
6 }
7 return null;
8 }
5. 路径参数,常用于restful风格
1 @RequestMapping("/resultful/{name}/query")
2 @ResponseBody
3 public String getRestFul(@PathVariable String name){
4 return name;
5 }
@RequestMapping("/resultful/{username}/query")
@ResponseBody
public String getRestFul(@PathVariable("username") String name){
return name;
}
文章标题:SpringMvc Controller请求传参方式总结
文章链接:http://soscw.com/index.php/essay/67549.html