SpringMVC页面向Controller传参
关于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("参数")绑定到后面跟的形参,后台在处理时根据实际需要可以改变参数名称。
SpringMVC页面向Controller传参的更多相关文章
- struts2 页面向Action传参方式
1.基本属性注入 我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入.例如 jsp页面: <s:form method=& ...
- springmvc jsp向controller传参,一直为null
怎么检查都无解 重启电脑好了
- angularjs不同页面间controller传参方式,使用service封装sessionStorage
这里分享一个我在实际项目中,使用service封装的一个依赖sessionStorage的传参服务. 这里先说下大背景,在我们的实际开发中,登陆之后一般会存在一个token,这个token将会贯穿全场 ...
- JS form跳转到新标签页并用post传参
通过js实现跳转到一个新的标签页,并且传递参数.(使用post传参方式) 1 超链接<a>标签 (get传参) <a href="http://www.cnblogs. ...
- jnhs-SpringMVC jsp页面向controller传递参数的五种方式
一共是五种传参方式: 一:直接将请求参数名作为Controller中方法的形参 public String login (String username,String password) : 解 ...
- C# 页面向controller中跳转匹配方法的时候,当controller中有两个重载方法时候,不发生跳转
在ajax中的URL跳向controller一个方法时候,controller中有两个重载的方法,ajax不发生跳转,当删除另外一个方法之后,正常跳转. 不知道,是我自己写的有问题,还是control ...
- springboot controller传参,对象映射
Post请求,对象映射时,在参数 加 @RequestBody: 传入对象内字段的json才能映射 {"legendData": [100,90,80,70,60,50,40,30 ...
- angular 跳转页面时传参
首先,你需要已经配置过你的rout,比如: $stateProvider .state('firstPage',{ url:'/Page/firstPage', templateUrl: 'Page/ ...
- Vue框架(四)——路由跳转、路由传参、cookies、axios、跨域问题、element-ui模块
路由跳转 三种方式: $router.push / $router.go / router-link to this.$router.push('/course'); this.$router.pus ...
随机推荐
- 小甲鱼Python3笔记
000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...
- JVM之垃圾回收
1.哪些内存需要回收?判断对象已死的方法(存活判定算法) 1.引用计数算法:难以解决对象之间相互循环引用的问题,不使用. 2.可达性分析算法:通过一系列“GC Root”对象作为起始点向下搜索,所走过 ...
- CMS使用对应版本当作新项目。
document.form1 整体替换document.forms[0] document.Templetslist 整体替换document.forms[0] document.f_Upload整体 ...
- 树的简介及Java实现
一.树的基本知识 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合.把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.它具有以下的特点:每个结 ...
- Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本
绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...
- C 基于数组存储的堆栈实现
一.堆栈简介 对于需要管理的队列,主要操作是在序列的末尾插入和取出(删除)元素,有这样操作要求的序列我们称之为堆栈(Stack). 堆栈可以认为是具有一定约束的线性表,插入和删除都作用在一个称为栈顶( ...
- [Swift]LeetCode409. 最长回文串 | Longest Palindrome
Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...
- [Swift]LeetCode523. 连续的子数组和 | Continuous Subarray Sum
Given a list of non-negative numbers and a target integer k, write a function to check if the array ...
- Kubernetes---Pod控制器
Pod作为kubernetes的最基本单元,它的控制器有以下这些 Pod的控制器: 1, RC ( ReplicationController): 2, RS(ReplicaSet) : 3, De ...
- Linux(Ubuntu) OpenGL 开发环境
Linux(Ubuntu) OpenGL 开发环境 在 PC 平台上开发 OpenGL 可以使用的辅助工具有很多选择,这里我主要参考了 learnopengl 的配置,使用 GLFW 和 GLAD. ...