前端数据传输过去是乱码,怎么办?

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 数据处理和乱码问题八、数据处理1. 处理提交数据2. 数据显示到前端

八、数据处理


1. 处理提交数据


  1. 提交的名称和方法的参数名一致
//localhost:8080/user/t1?name=xxx;
@GetMapping("/t1")
public String test1(String name, Model model){
    //1.接收前端参数
    System.out.println("接收到前端的参数为:" + name);
    //2.将返回的结果传递给前端
    model.addAttribute("msg", name);
    //3.跳转视图
    return "test";
}

2.提交的名称和方法的参数名不一致

//加上@RequestParam("username")就知道是从前端接收过来localhost:8080/user/t1?username=xxx;。此时必须要通过username识别
@GetMapping("/t1")
public String test1(@RequestParam("username") String name, Model model){
    //1.接收前端参数
    System.out.println("接收到前端的参数为:" + name);
    //2.将返回的结果传递给前端
    model.addAttribute("msg", name);
    //3.跳转视图
    return "test";
}

3.提交一个对象

//前端接收的是一个对象:id, name, age
//localhost:8080/user/t1?id=1&name=xxx&age=2;
/*
* 1.接收前端用户传递的参数,判断参数的名字,假设名字直接在方法上可以直接使用
* 2.假设传递的是一个对象User,匹配User对象中的字段名:如果名字一致则ok。否则匹配不到
*
* */
@GetMapping("/t2")
public String test2(User user){
    System.out.println(user);
    //3.跳转视图
    return "test";
}


使用对象,前端传递的参数名和对象名必须一致,否则为空。


2. 数据显示到前端


2.1 ModelAndView


         
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("msg","ControllerTest1");
    modelAndView.setViewName("test");
    return modelAndView;
}

2.2 Model

@RequestMapping("/t2")
public String test(Model model){
    model.addAttribute("msg", "ControllerTest2");
    return "test";
}

2.3 ModelMap

@GetMapping("/t3")
public String test3(@RequestParam("username") String name,Model map){
    map.addAttribute("name",name);
    return "test";
}

对比:

ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
ModelMap 继承了 LinkedHashMap ,除了实现了自身的一些方法,同样的继承 LinkedHashMap 的方法和特性;
Model 少数方法适合用于储存数据,简化了新手对于Model对象的操作和理解;大部分情况下直接使用Model



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
JSON 前端开发 JavaScript
前端数据传输失败
前端数据传输失败
128 0
|
前端开发 数据库
后端返回数据前端显示为问号和乱码
后端返回数据前端显示为问号和乱码
358 0
|
JSON 前端开发 JavaScript
|
Web App开发 JavaScript 前端开发
Node.js --- 前端高薪之路绕不过去的坎
Node.js --- 前端高薪之路绕不过去的坎
Node.js --- 前端高薪之路绕不过去的坎
|
前端开发 Java 应用服务中间件
|
前端开发
SpringMVC的请求乱码解决和接收前端常用类型(五)下
SpringMVC的请求乱码解决和接收前端常用类型(五)
138 0
SpringMVC的请求乱码解决和接收前端常用类型(五)下
|
25天前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
108 2
|
25天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
35 0
|
25天前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
下一篇
无影云桌面