
@RequestMapping(“testRequestParam”) public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) { System.out.println(inputStr); int inputInt = Integer.valueOf(request.getParameter(“inputInt”)); System.out.println(inputInt); // ……省略 return “index”; } @RequestMapping("testRequestParam") public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) { System.out.println(inputStr); int inputInt = Integer.valueOf(request.getParameter("inputInt")); System.out.println(inputInt); // ......省略 return "index"; } 前端代碼:Html代碼 
<form action=“/gadget/testRequestParam” method=“post”> 參數(shù)inputStr:<input type=“text” name=“inputStr”> 參數(shù)intputInt:<input type=“text” name=“inputInt”> </form> <form action="/gadget/testRequestParam" method="post"> 參數(shù)inputStr:<input type="text" name="inputStr"> 參數(shù)intputInt:<input type="text" name="inputInt"> </form>前端界面:
執(zhí)行結(jié)果:test1123可以看到spring會自動根據(jù)參數(shù)名字封裝進(jìn)入,我們可以直接拿這個參數(shù)名來用二、各種異常情況處理1、可以對傳入?yún)?shù)指定參數(shù)名Java代碼 
@RequestParam String inputStr // 下面的對傳入?yún)?shù)指定為aa,如果前端不傳aa參數(shù)名,會報錯 @RequestParam(value=“aa”) String inputStr @RequestParam String inputStr// 下面的對傳入?yún)?shù)指定為aa,如果前端不傳aa參數(shù)名,會報錯@RequestParam(value="aa") String inputStr錯誤信息:HTTP Status 400 - Required String parameter ‘a(chǎn)a’ is not present2、可以通過required=false或者true來要求@RequestParam配置的前端參數(shù)是否一定要傳Java代碼 
// required=false表示不傳的話,會給參數(shù)賦值為null,required=true就是必須要有 @RequestMapping(“testRequestParam”) public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr, HttpServletRequest request) // required=false表示不傳的話,會給參數(shù)賦值為null,required=true就是必須要有@RequestMapping("testRequestParam") public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)3、如果用@RequestMapping注解的參數(shù)是int基本類型,但是required=false,這時如果不傳參數(shù)值會報錯,因?yàn)椴粋髦担瑫x值為null給int,這個不可以Java代碼 
@RequestMapping(“testRequestParam”) public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr, @RequestParam(value=“inputInt”, required=false) int inputInt ,HttpServletRequest request) { // ……省略 return “index”; } @RequestMapping("testRequestParam") public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, @RequestParam(value="inputInt", required=false) int inputInt ,HttpServletRequest request) { // ......省略 return "index"; }解決方法: “Consider declaring it as object wrapper for the corresponding primitive type.”建議使用包裝類型代替基本類型,如使用“Integer”代替“int”
新聞熱點(diǎn)
疑難解答