SpringMVC页面向Controller传参
2019-04-20 08:54:17来源:博客园 阅读 ()
关于SpringMVC页面向Controller传参的问题,看了网上不少帖子,大多总结为以下几类:
1、直接把页面表单中相关元素的name属性对应的值作为Controller方法中的形参。
这个应该是最直接的,我看的那本书从百度的编辑器中取内容content时就直接用的这个方法:
<!--页面-->
<form action="<%=basePath%>saveUeditorContent" method="post"> <!-- 加载编辑器的容器 --> <div style="padding: 0px;margin: 0px;width: 100%;height: 100%;" > <script id="container" name="content" type="text/plain"> </script> <!--why dose this use script tag here???--> </div> <input name="test_input" value="hengha"> <button type="submit"> 保存</button> </form>
//Controller @RequestMapping(value="/saveUeditorContent") public ModelAndView saveUeditor(String content, String test_input){ ModelAndView mav = new ModelAndView("myJSP/test03"); //addObject方法设置了要传递给视图的对象 mav.addObject("content", content); mav.addObject("input_content", test_input); //返回ModelAndView对象会跳转至对应的视图文件。也将设置的参数同时传递至视图 return mav; }
2、通过@RequestParam把页面表单中相关元素的name属性对应的值绑定Controller方法中的形参。
用于URL带?场景,/saveUeditorContent?content=123&input_content=456,参数可以设置是否必须required,默认值defaultvalue
@RequestMapping(value="/saveUeditorContent") public ModelAndView saveUeditor(@RequestParam(value="content",required=true,defaultValue="123") String content, @RequestParam("test_input") String input_content){ ModelAndView mav = new ModelAndView("myJSP/test03"); mav.addObject("content", content); mav.addObject("input_content", input_content); return mav; }
3、通过@PathVariable获取@RequestMapping中URL路径带入的{变量}绑定Controller方法中的形参。
用于URL直接传参场景,/saveUeditorContent/123/456
@RequestMapping(value="/saveUeditorContent/{content}/{test_input}") public ModelAndView saveUeditor(@PathVariable("content") String content, @PathVariable("test_input") String input_content){ ModelAndView mav = new ModelAndView("myJSP/test03"); mav.addObject("content", content); mav.addObject("input_content", input_content); return mav; }
4、创建属性名对应页面表单中相关元素带setter和getter方法的POJO对象作为Controller方法中的形参。
//太晚了不是特别熟不整了
5、把HttpServletRequest对象作为Controller方法中的形参。
@RequestMapping(value="/saveUeditorContent") public ModelAndView saveUeditor(HttpServletRequest request){ ModelAndView mav = new ModelAndView("myJSP/test03"); mav.addObject("content", request.getParameter("content")); mav.addObject("input_content", request.getParameter("test_input")); return mav; }
约束说明:
a) 1中的形参,2中的RequestParam("参数"),3中的URL中的{参数}以及PathVariable("参数"),4中的POJO对象属性,5中的request.getParameter("参数")均需要和前台页面中相关元素name属性对应的值匹配。
b) 2中的RequestParam("参数"),3中的PathVariable("参数")绑定到后面跟的形参,后台在处理时根据实际需要可以改变参数名称。
原文链接:https://www.cnblogs.com/m-e-l-o-d-y/p/10733612.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- @Controller、@RestController 2020-06-08
- 面对对象(2) 2020-05-28
- 蚂蚁金服这套SpringMvc面试题你懂多少(面试必刷) 2020-05-27
- SpringMVC高级-拦截器如何正确运用?案例详解 2020-05-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash