当前位置: 首页 > news >正文

烟台城乡住房建设厅网站网站alt标签

烟台城乡住房建设厅网站,网站alt标签,下载源代码建网站,wordpress最多文章SpringMVC 内容协商是restful风格的体现,一般springmvc和前台数据交换有xml格式和json两种数据格式,平时我们主流使用的主要是json格式 我现在在pom.xml 文件中配置了两种解析工具,一个是json,一个是xml 但是返回的数据格式是xm…

SpringMVC 内容协商是restful风格的体现,一般springmvc和前台数据交换有xml格式和json两种数据格式,平时我们主流使用的主要是json格式

我现在在pom.xml 文件中配置了两种解析工具,一个是json,一个是xml

但是返回的数据格式是xml,我想要json,

 看看我的ajax请求:

	function doLogin(){			let username=$("#username").val();let password=$("#password").val();let data={"username":username,"password":password}$.ajax({type: "POST",url: "/dologin4",contentType: "application/json",data: JSON.stringify(data),success: function(res){console.log(res)if(res.code==='success'){location.href="index";}else{alert(res.msg);}},error: function(error){console.log(error);},});}

 再看看我的Controller是这样的:

	@ResponseBody@RequestMapping("dologin4")public Map<String,Object> dologin4(@Valid @RequestBody UserInfo userinfo,BindingResult br,HttpServletRequest request) {System.out.println("正在dologin4");String message="";List<ObjectError> list=br.getAllErrors();for(ObjectError oe:list) {System.out.println(oe.getDefaultMessage());message=message+oe.getDefaultMessage();}if(message!="" && message.length()>0) {Map<String,Object> map=new HashMap<String, Object>();map.put("code","fail");map.put("msg",message);return map;}String username=userinfo.getUsername();String password=userinfo.getPassword();System.out.println(username);System.out.println(password);if("张三".contentEquals(username) && "123456".contentEquals(password)) {HttpSession session=request.getSession(true);session.setAttribute("username", username);Map<String,Object> map=new HashMap<String, Object>();map.put("code","success");map.put("msg","登陆成功");System.out.println("登录成功");return map;}else {Map<String,Object> map=new HashMap<String, Object>();map.put("code","fail");map.put("msg","登陆失败");System.out.println("登录失败");return map;}}

我看了一下HttpMessageConverter 发现是这样的:

 是否和这个消息转换器中的顺序有关系,为什么xml的顺序在前面,是不是我pom.xml 中引入的顺序有问题,我们来看一下:

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.0</version></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.13.4</version></dependency>	<dependency><groupId>jakarta.xml.bind</groupId><artifactId>jakarta.xml.bind-api</artifactId><version>4.0.0</version> <!-- 根据需要调整版本 --></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>6.1.2</version> <!-- 使用与你Spring项目兼容的版本 --></dependency><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>4.0.3</version></dependency>

我是把json放到了xml的依赖的前面,现在我调整一下顺序,但是并没有效果

在 Spring MVC 中,消息转换器默认顺序是由框架设计及加载机制决定的,原因如下:

  • 历史与兼容性:早期 Spring MVC 版本确定了消息转换器的默认加载顺序,后续为保证兼容性,未做大幅改动。像ByteArrayHttpMessageConverter 等作为基础转换器,先加载以处理简单数据类型,为后续复杂类型转换打基础。
  • 约定优于配置原则:框架遵循约定优于配置,按常见应用场景设定默认顺序。例如,先处理字节数组、字符串等基础类型,再处理资源相关类型,最后处理复杂对象的 JSON、XML 转换 。这种顺序能满足多数项目的常规数据处理需求,减少开发者配置工作。
  • 依赖引入顺序影响:若项目引入新的消息转换器依赖,Maven 等构建工具按依赖声明顺序或依赖传递规则引入,会影响消息转换器在容器中的注册顺序。比如先声明了 XML 相关依赖,后声明 JSON 相关依赖,在某些情况下会导致 XML 转换器排在 JSON 转换器前。

 如何强制改变顺序:

我修改了spring-servlet.xml 中的配置:

	<!-- 启用 Spring MVC 注解驱动 --><mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/><bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter"/></mvc:message-converters></mvc:annotation-driven>

 再次调试:

 这样前台就优先返回json格式的数据了

希望对你有所帮助

http://www.dtcms.com/a/618302.html

相关文章:

  • win11上使用Workbench备份mysql数据库
  • B站评论数据采集:基于Requests的智能爬虫实战
  • 信息学与容斥
  • 网易云音乐评论数据采集:基于Requests的智能爬虫实战
  • 网站空间登录网站建设模式有哪些内容
  • VSCode 中快捷键的使用:(大小写转换快捷键、自动补全函数注释快捷键、代码和注释自动缩进快捷键)
  • 使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 25--数据驱动--参数化处理 Excel 文件 2
  • SpringCloud微服务笔记
  • 广告公司网站官网安徽网站建设流程
  • 华为OD机试真题2025双机位A卷 --【压缩日志查询】(Python C++ JAVA JS GO)
  • 网站编辑怎么做内容分类手机网站 程序
  • 瑞安建设网站成都vr 网站开发
  • C++多线程【数据共享】之互斥锁
  • Java漏洞集合工具
  • JavaScript 正则表达式详解
  • 【CS创世SD NAND征文】高可靠性数控设备:技术方案与行业展望
  • 深入理解Go语言Slice的append操作:从内存分配到扩容机制
  • Linux---文件控制<fcntl.h> (file control, fcntl)
  • 网站放到服务器珠海市 网站建设
  • 农林科技公司网站模板seo研究中心官网
  • 东莞响应式网站哪家好架设网站开发环境
  • 类似淘宝网站建设有哪些模板wordpress文章图片全屏浏览
  • 技术演进中的开发沉思-194 JavaScript: Prototype 框架
  • Windows MongoDB 安装与配置指南
  • Kafka客户端整合
  • 购物网站建设方案手机建立网站的软件
  • 力扣hot100----1day
  • 二叉树的前序遍历解题思路
  • python手写数字识别计分系统+CNN模型+YOLOv5模型 深度学习 计算机毕业设计(建议收藏)✅
  • 网站服务器租赁价格上海低价网站建设