SpringMVC方法参数深入设置
1、在之前的程序里面使用了String进行了参数的传递处理,那么除了使用String之外也可以使用其他的各种类型。接收int类型: @RequestMapping("remove") public ModelAndView remove(int id) { ModelAndView md = new ModelAndView("/pages/show.jsp"); logger.info(id * 2 + "--------"); return null; }
2、如果此时传递的内容不是一个数字,那么就会出现如下的错误信息:Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "llll"
3、实际上在SpringMVC里面对于参数的接收也都是按照字符串接收,而后帮助用户自动进行转型控制。在进行分页处理的时候往往需要手工的判断:cp,ls,col,kw等参数的内容,剧安颌儿如果该参数接收的内容是null,怎必须进行判断才可以转型,但是如果有了这样的机制,对于整个分页的处理就变得异常简单。@RequestMapping("list") public ModelAndView list(@RequestParam(value="cp",defaultValue="1") int currentPage, @RequestParam(value="ls",defaultValue="10") int lineSize, @RequestParam(value="col",defaultValue="ename") String colum, @RequestParam(value="kw",defaultValue="") String keyword) { ModelAndView md = new ModelAndView(); System.out.println("currentPage=" + currentPage); System.out.println("lineSize=" + lineSize); System.out.println("colum=" + colum); System.out.println("keyw ord=" + keyword); return md; }
4、这样处理之后当方法参数没有赋值时将去我们程序设置的默认值。
5、内置对象配置。在正常编写servlet程序的时候doGet()或者是doPo衡痕贤伎st()方法上都会提供有HttpServletRequest,HttpServletResponse参数,这个时候可以根据用户的需求自己随意来设置request,response内容。@RequestMapping("get") public ModelAndView doGet(int id,HttpServletRequest request, HttpServletResponse response) { ModelAndView md = new ModelAndView(); return md; }
6、需要注意的时候,这个参数随意自己来进行安排,顺序也没有固定限制,所有的参数可以有用户自己发挥。