例如,我有java类帖子:
public class Post{
String title;
String text;
}
如果我创建此类的实例并在我的servlet控制器中将其转换为ajax响应
@RestController
public class AjaxNewsController {
@JsonView(Views.Public.class)
@PostMapping(value = "/getPost")
public AjaxResponseBody getSearchResultViaAjax(@RequestBody AjaxPostResponse postId) {
AjaxResponseBody result = new AjaxResponseBody();
result.setCode("200");
result.setMsg("found POST");
result.setResult(post);
return result;
}
}
我的问题是:我可以在客户端使用javascript检索帖子字段的标题和文本吗?如果可以的话,怎么办?
以下是控制台的示例,我在浏览器中有响应 console
但是我如何提取带有ajax和jquery中字段的帖子?
UPD
经过一番探索之后,我发现我的serlvet无法将我的Java pojo转换为json。我该怎么办?
UPD2
我的请求发送正常消息,但serlvet不会将POST类转换为json。
这是我的javascript:
function likePost(postId,ratingElem, ratingChange) {
var search = {}
search["postId"] = postId;
search["rating"] = ratingChange;
$.ajax({
type : "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url : "likePost",
data : JSON.stringify(search),
timeout : 100000,
success : function(data) {
console.log("SUCCESS: ", data);
changeRating(ratingElem,data.post.getTopic());
},
error : function(e) {
console.log("ERROR: ", e);
changeRating(ratingElem,'error');
},
done : function(e) {
console.log("DONE");
enableSearchButton(true);
}
});
}
状态和消息正常,但结果为空。
答案 0 :(得分:0)
尝试:
Number
如果您想从另一个域获取数据,请阅读cors
答案 1 :(得分:0)
所以我解决了我的问题。我使用com.fasterxml.jackson.core,所以我只需要在类中标记要转换为json的字段,例如
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "post_id",
unique = true, nullable = false)
@JsonView(Views.Public.class)
private Integer postId;
所有标记的内容都会被转换。