温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用controller传boolean形式值

发布时间:2022-03-18 16:13:44 来源:亿速云 阅读:253 作者:iii 栏目:开发技术

这篇文章主要讲解了“如何使用controller传boolean形式值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用controller传boolean形式值”吧!

controller传boolean形式值

@GetMapping("/check-cart") public List<CartViewDto> checkCart(@RequestParam(value = "requirePrice", required = false) boolean requirePrice) {         return service.checkCart(requirePrice);     }

controller传入boolean类型的值,参数为非必填

我们可以传三种类型

  • http://端口:ip/cart/check-cart

  • http://端口:ip/cart/check-cart?requirePrice=true

  • http://端口:ip/cart/check-cart?requirePrice=false

这三种都可以。

其他如:

  • http://端口:ip/cart/check-cart?requirePrice=

  • http://端口:ip/cart/check-cart?requirePrice=111

都会报错

controller层接收各种参数和文件

在构建一个系统时,前端和后台总是需要对接,在springmvc架构里,这种对接一般发生在Controller层中。方法参数绑定首先支持Java所有基本类型(包括: byte、short、int、long、float、double、char、string、boolean),以及基本类型对应封装高级类(包括:StringBuilder、StringBuffer),也包含 了我们自己定义的各种JavaBean类型。接受的方式有很多,但是也要在接受数据时也要体现面向对象的思想。

简单传入

以用户登陆为例,在前台传入数据,做一个传入的例子。

前台传入数据的形式为 username=10&password=10

<html> <head> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script>	//简单形式的传参	$.ajax({	type: "POST",             url: "http://localhost:8080/test/requesetParamGet",             contentType: "application/x-www-form-urlencoded",             data:"username=10&password=10",             dataType: "json",             success: function (result) {                 if (result.code == 0) {	console.log(result)                 } else {                                     }             }         }); </script> </head> </html>

在这种情况下,如何在后台进行接受呢?可以采用如下的方法。

    @ResponseBody     @RequestMapping("/simple")     public R list(String name,String age){         System.out.println("name:"+name+",age:"+age);         return R.ok();     }

当然也可以采用HttpServeletRequest的形式进行接受

    @ResponseBody     @RequestMapping("/simple")     public R requestGet(HttpServletRequest request){         System.out.println("reqname:"+request.getParameter("name")+",reqage:"+request.getParameter("age"));         return R.ok();     }

以json对象的形式传入

还是以用户登陆为例,在前台传入数据,做一个传入的例子。

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script>	//class获取,需要用对象的形式	var s={	name:'liMin',	age:'10'	}	$.ajax({	type: "POST",             url: "http://localhost:8080/test/classGet",             contentType: "application/json",             data:JSON.stringify(s),             dataType: "json",             success: function (result) {                 if (result.code == 0) {	console.log(result)                 } else {                                     }             }         }); </script>

这种情况下,controller层建议使用对象的形式进行接受。

    @ResponseBody     @RequestMapping("/classGet")     public R classGet(@RequestBody TestEntity testEntity){         System.out.println("className:"+testEntity.getName()+"classAge:"+testEntity.getAge());         return R.ok();     }

在传参时,需要添加注解@RequsetBody用来接收contentType为application/json的传入对象。如果传过来的时contentType头为application/x-www-form-urlencoded,那么建议使用另外一个注解接受@RequestParam来接受。

    @RequestMapping("/requesetParamGet")     public R addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {         System.out.println("username is:"+username);         System.out.println("password is:"+password);         return R.ok();     }

如果啥都不写,那么就得不到这个对象,接受到的对象为NULL。

当然,你可以不接受为一个对象,可以把传过来的json对象转化为json字符串,然后用各种工具进行解析,也是可以的。当然也是要加上@RequestBody或者@RequestParam的。

    @ResponseBody     @RequestMapping("/stringGet")     public R stringGet(@RequestBody  String string){         System.out.println("String:"+string);         return R.ok();     }

文件传输

在项目中,文件上传有别于对象的上传。

<html> <head> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script>       function savePic(){         var formData = new FormData($( "#uploadPic" )[0]);           var ajaxUrl = "http://localhost:8080/test/fileUpload";         //alert(ajaxUrl);         //$('#uploadPic').serialize() 无法序列化二进制文件,这里采用formData上传         //需要浏览器支持:Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。         $.ajax({             type: "POST",             //dataType: "text",             url: ajaxUrl,             data: formData,             //async: false,               //cache: false,               contentType: false,  //上传文件             processData: false,//序列化处理,默认为true,上传文件需要改成false             success: function (data) {	alert(data);             },             error: function(data) {                 alert("error:"+data.responseText);                }         });         return false;     }	function jiance(){	var formData = new FormData();	formData.append()	} </script> </head> <body>	<form id="uploadPic" action="" enctype="multipart/form-data">	<input type="file" name="multipartFile" id="file">	<a href="javascript:savePic();" class="btn green"> 提交 </a>	<a href="javascript:jiance();" class="btn green"> jiance </a>	</form> </body> </html>

在后台接受参数的例子:

    @RequestMapping("/fileUpload")     @ResponseBody     public R upload(MultipartFile multipartFile){         String filePath="";         if(!multipartFile.isEmpty()){             System.out.println(multipartFile.getOriginalFilename());         }         return R.ok().put("filePath",filePath);     }
    @RequestMapping("/fileUpload2")     @ResponseBody     public R upload2(@RequestParam("multipartFile") MultipartFile multipartFile){         String filePath="";         if(!multipartFile.isEmpty()){             System.out.println(multipartFile.getOriginalFilename());         }         return R.ok().put("filePath",filePath);     }
    @RequestMapping("/fileUpload3")     @ResponseBody     public R upload3(@RequestBody MultipartFile multipartFile){         String filePath="";         if(!multipartFile.isEmpty()){             System.out.println(multipartFile.getOriginalFilename());         }         return R.ok().put("filePath",filePath);     }

这里需要注意一点,文件名必须和参数名保持一致,在本项目中file文件的名字必须为multipartFile。

感谢各位的阅读,以上就是“如何使用controller传boolean形式值”的内容了,经过本文的学习后,相信大家对如何使用controller传boolean形式值这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI