SpringMVC-数据提交
数据提交
1. 前端的参数与controller中的参数名一致
可以直接用
package com.wang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
//localhost: 8080/user/t1?name=xxx
//前端的参数名与此处一致,可以直接用
@GetMapping("/t1")
public String test(String name, Model model) {
//1. 接受前端参数
System.out.println("接受到前端的参数为: " + name);
//2. 将返回的结果传递给前端
model.addAttribute("msg", name);
return "test";
}
}
2. 前端的参数与controller中的参数名不一致
推荐无论一不一样, 都加上@RequestParam("前端的参数名")
package com.wang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/user")
public class UserController {
// //localhost: 8080/user/t1?name=xxx
// //前端的参数名与此处一致,可以直接用
// @GetMapping("/t1")
// public String test(String name, Model model) {
// //1. 接受前端参数
// System.out.println("接受到前端的参数为: " + name);
// //2. 将返回的结果传递给前端
// model.addAttribute("msg", name);
// return "test";
// }
//localhost: 8080/user/t1?username=xxx
//前端的参数名与此处不一致, 需要加注解
@GetMapping("/t1")
public String test(@RequestParam("username") String name, Model model) {
//1. 接受前端参数
System.out.println("接受到前端的参数为: " + name);
//2. 将返回的结果传递给前端
model.addAttribute("msg", name);
return "test";
}
}
3. 前端接收的是一个对象
package com.wang.controller;
import com.wang.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/user")
public class UserController {
//前端接收的是一个对象 : id, name, age
//localhost: 8080/user/t1?id=XXX&name=xxx&age=xxx
/*
1. 接受前端用户传递的参数, 判断参数的名字, 假设名字直接在方法上, 可以直接使用
2. 假设传递的是一个对象User, 匹配User对象中的字段名: 如果名字一致则OK, 否则, 匹配不到
*/
@GetMapping("/t3")
public String test3(User user, Model model) {
System.out.println(user);
model.addAttribute("msg", user.toString());
return "test";
}
}
4. 总结
1. 接受前端用户传递的参数, 判断参数的名字, 假设名字直接在方法上, 可以直接使用
2. 假设传递的是一个对象User, 匹配User对象中的字段名: 如果名字一致则OK, 否则, 匹配不到
5. 数据显示到前端
1. 通过ModelAndView
public class ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ControllerTest1");
mv.setViewName("test");
return mv;
}
}
2. 通过Model
@RequestMapping("/ct2/hello")
public String hello(@RequestParam("username") String name, Model model){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("msg",name);
System.out.println(name);
return "test";
}
3. 通过ModelMap
id1[LinkedHashMap]
id2[ModelMap]
id3[Model]
id1 --继承了LinkedHashMap, 拥有LinkedHashMap的全部功能--> id2
id2 --精简版, 大部分情况下我们直接使用Model--> id3
@GetMapping("/t4")
public String test4 (@RequestParam("username") String name, ModelMap map) {
map.addAttribute("msg", name);
System.out.println(name);
return "test";
}
4. 对比
Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解
ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性
ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转
SpringMVC-数据提交的更多相关文章
- SpringMVC之ajax与表单 Post 数据提交差异小结
最近在写一个富文本框的后台数据服务的时候遇到一些关于 ajax 提交与 表单提交的比较特殊的案例,这里拿来跟大家分享,希望能让大家有所启发. 1. 首先是常见表单提交在SpringMVC的控制器中的代 ...
- SpringMVC数据验证
SpringMVC数据验证——第七章 注解式控制器的数据验证.类型转换及格式化——跟着开涛学SpringMVC 资源来自:http://jinnianshilongnian.iteye.com/blo ...
- 《Java从入门到放弃》入门篇:springMVC数据传递
springMVC中的数据传递方式与JSP和Struts2相比,更加的简单.具体有什么样的区别呢?我们通过下面这张图来对比就知道了. 随手画的,有些错别字,不用太在意..... 接下来,进入正题,sp ...
- springMVC数据交互
控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...
- SpringMVC数据格式化
SpringMVC数据格式化 1. 使用Formatter格式化数据 Converter可以将一种类型转换成另一种类型,是任意Object之间的类型转换. Formatter则只能进行String与任 ...
- 四种常见的 POST-------- content-type数据提交方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
- ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet
实现效果: "Form"中填写数据,向本页"Grid"中添加数据,转换成Json数据提交,计算总和,Grid文本框可编辑,排序 图片效果: 总结: //disp ...
- jsp 页面json数据提交到后台spring处理举例
0 前台: 'type' : 'post', 'contentType' : 'application/json;charset=UTF-8', 'data' : JSON ...
- 数据提交成功后如何避免alert被window.location.reload()影响
数据提交成功用alert提示,但页面立马就重载了 alert("提交成功!"); window.location.reload(); 如何避免? 方法一: setTimeout 延 ...
- jsp多模块相同数据提交到后台之数据处理
最近在写一个java多模块表单提交,起初想的只是一个简单的form表单提交,写的时候发现不是真简单.多个相同类型数据提交到后台接收的问题很困难. 于是,和人进行深入的讨论,感觉j以json的格式提交时 ...
随机推荐
- 2020-07-22:你觉得使用redis的主从复制的时候有什么点需要注意的吗?
福哥答案2020-07-22: 1.主从同步缓冲区设定大小,如果进行全量复制耗时太长,进行部分复制时发现数据已经存在丢失的情况,必须进行第二次全量复制,致使slave陷入死循环状态.在全量复制的时候, ...
- Quartz.Net的基础使用方法,单任务执行
1.先创建一个控制台应用程序 2.应用Quartz的NuGet包 3.编写执行任务代码 using System; using System.Threading.Tasks; using Quar ...
- 从一次外卖到对oauth2.0的思考
别问oauth1.0哪去了,问就是不好讲. 1. 外卖并不好吃 今天下班得早,想吃顿好的,于是就点了一份外卖,过了一会儿,外卖到了,但是在小区大门被堵住了,我亲自远程开门后才能进来,又过了一会,被 ...
- 使用MIPS完成汇编程序——选择排序实现
题目: 从键盘输入10个无符号字数并从大到小进行排序,排序结果在屏幕上显示出来.要求能输入数字 和输出数字 且由大到小来排列 1.代码以及伪代码: 首先写出对应c++代码然后把c++代码翻译成汇编语言 ...
- 使用动态链接为什么还需要静态库lib文件
在Windows上使用动态链接时,不光需要头文件 .dll文件 还需要一个.lib 文件. 不是动态链接吗?为什么还需要静态库.lib文件? 实际上,这个.lib文件并不是静态库,而是 导入库 文件, ...
- hdfs学习(三)
HDFS 的 API 操作 使用url方式访问数据(了解) @Test public void urlHdfs() throws IOException { //1.注册url URL.setURLS ...
- 【Floyd】珍珠
[题目描述] 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面 ...
- github Repository not found 解决办法
git pull的时候遇到下面的报错. remote: Repository not found fatal: repository 'https://github.com/MyRepo/projec ...
- Linux环境安装Docker入门教程
安装 下载 wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.1-ce.tgz 解压 tar -xvf ...
- 七夕节表白3d相册制作(html5+css3)
七夕节表白3d相册制作 涉及知识点 定位 阴影 3d转换 动画 主要思路: 通过定位将所有照片叠在一起,在设置默认的样式以及照片的布局,最后通过设置盒子以及照片的旋转动画来达到效果. 代码如下: &l ...