您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何使用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
都會報錯
在構建一個系統時,前端和后臺總是需要對接,在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(); }
還是以用戶登陸為例,在前臺傳入數據,做一個傳入的例子。
<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形式值這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。