gpt4 book ai didi

java - Spring 4.X 设置 XML 响应的内容类型

转载 作者:行者123 更新时间:2023-12-01 09:30:02 24 4
gpt4 key购买 nike

我目前正在使用 Spring 构建一个网络应用程序。我的前端应用程序请求 XML 格式的数据。除了 Internet Explorer 和 MS Edge 之外,这在所有浏览器中都工作正常。它们都将响应标记为 Text/HTML,这似乎是前端使用的 javascript 组件的问题。

如何将响应标记为 application/xml?下面是生成响应的 Java 代码:

   @RequestMapping(value = "/dashboardData",  method = RequestMethod.GET, produces="application/xml")
@ResponseBody
public ModelAndView getBereichsleiterData() {
HashMap<String, Object> model = new HashMap();
List<Map<String, Object>> data = dataProvider.getEintraege();


model.put("total_count",dataProvider.getEintraegeCount());
model.put("pos_start",0);
model.put("table", data);

return new ModelAndView("data/gridData", model);
}

data/gridData 下的文件是一个 .jsp,用于呈现 XML:

<%@ page language="java" contentType="text/html; charset=UTF-8" 

pageEncoding="UTF-8" %>
<%@ page isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<?xml version="1.0" encoding="UTF-8"?>
<rows total_count='${total_count}' pos='${pos_start}'>
<c:set var="id" value="${pos_start}" scope="page" />
<c:forEach var="entry" items="${table}" varStatus="loop">
<c:set var="id" value="${id + 1}" scope="page"/>
<row id='${id}'>
<cell>${entry.GEN_REKL_KEY}</cell>
<cell>${entry.ART}</cell>
<cell>${entry.WGR}</cell>
<cell>${entry.EAN}</cell>
<cell>${entry.HERSTELLER_NAME}</cell>
<cell>${entry.BETRIEB}</cell>
<cell>${entry.STATUS_ID}</cell>
<cell>${entry.PROZESS_START}</cell>
<cell>${entry.LETZTE_BEARBEITUNG}</cell>
<cell>${entry.AKT_BENUTZER_NAME}</cell>
</row>
</c:forEach>
</rows>

最佳答案

您正在自己设置内容类型。检查 JSP 的第一行。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

这清楚地说明了 contentType="text/html; charset=UTF-8"...所以我认为实际上在这种情况下 IE 和 EDGE 是正确的,而其他是错误的.. .

将内容类型更改为您想要的内容并完成。

关于java - Spring 4.X 设置 XML 响应的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com