gpt4 book ai didi

java - @ResponseBody 不适用于 spring 4.2.4 - 不是重复的我已经检查了所有其他

转载 作者:行者123 更新时间:2023-12-01 10:10:57 25 4
gpt4 key购买 nike

这是我的设置:

Spring 版本:4.2.4.RELEASE

jackson 库:

  <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.3</version>
</dependency>

Spring 配置:

<mvc:annotation-driven />

请求对象:

public class TagSearchCriteria {
private String term;

public void setTerm(String term){
this.term = term;
}

public String getTerm(){
return this.term;
}
}

响应对象

public class TagSearchResponse {
private String result;

public void setResult(String result){
this.result = result;
}

public String getResult(){
return this.result;
}
}

这是 Controller 方法:

@RequestMapping(value = "/tagvalue.htm", method = RequestMethod.POST)
public @ResponseBody TagSearchResponse getTags(@RequestBody TagSearchCriteria tagSearchCriteria) {

Tag tag = tagDao.getTags(tagSearchCriteria.getTerm());
TagSearchResponse tagSearchResponse = new TagSearchResponse();
tagSearchResponse.setResult(tag.getTagName());
return tagSearchResponse;
}

最后这是我的 AJAX 调用

$("#tag").keyup(function() {
var tagValue = $("#tag").val();
if (tagValue.length > 2) {
var data = {}
data["term"] = $("#tag").val();
$.ajax({
type : "POST",
contentType : "application/json",
url : "tagvalue.htm",
data : JSON.stringify(data),
dataType : 'json',
timeout : 100000,
success : function(data) {
console.log("SUCCESS: ", data);
display(data);
},
error : function(e) {
console.log("ERROR: ", e);
display(e);
},
done : function(e) {
console.log("DONE");
}
});
}
});

我收到的响应是 406 错误

HTTP 状态 406 - 状态报告此请求标识的资源只能生成具有根据请求“接受” header Not Acceptable 特征的响应。

在 Controller 中,最多返回tagSearchResponse;一切都很好,这个返回对象是一个正在返回的有效对象

最佳答案

问题出在你的映射上。默认情况下,Spring 使用 URL 中的扩展名来决定返回什么类型的内容(html、json、xml 等)。

您的方法已映射到 /tagvalue.htm,但您希望它返回 json(顺便说一句,这很令人困惑)。

将映射更改为 /tagvalue,并使用 /tagvalue/tagvalue.json 到达端点。

有关此机制的更多信息可在 the documentation 中找到。 .

关于java - @ResponseBody 不适用于 spring 4.2.4 - 不是重复的我已经检查了所有其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120242/

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