gpt4 book ai didi

ajax - 如何在 Spring MVC 中以 Json 形式返回对象列表

转载 作者:行者123 更新时间:2023-12-03 22:39:38 24 4
gpt4 key购买 nike

我正在尝试获取要在 Spring 3 MVC 应用程序上呈现的对象列表,并希望通过 Ajax 来执行此操作。

所以在我的 Spring 类(class)中,我有:

@RequestMapping(value = "/viewSearchEnquiriesAjax", method = RequestMethod.GET, headers = "Accept=application/json")
public @ResponseBody List<Enquiry> getEnquiriesBySearchAjax(@RequestParam String name) {
Search search = new Search();
search.setFirstName(name);
return searchEnquiries(search);
}

但是运行时我收到 500(内部服务器错误)。当我在浏览器中调试时,这会表现为 'GET http://localhost:8080/SpringMVC/viewSearchEnquiriesAjax?name=peter 500 (Internal Server Error)'

我可以成功返回单个对象,没有错误。 Spring Json映射器(Jackson)可以正确转换吗?我是否遗漏了一些基本的东西?

我的 JavaScript 如下:

function doAjaxPost() {
// get the form values
var firstName = $('#firstName').val();
$.getJSON("/SpringMVC/viewSearchEnquiriesAjax", { name: firstName }, function(result) {
alert("Success");
});

}

我的查询对象是一个实体:

@Entity
@Table(name = "enquiries")
public class Enquiry implements java.io.Serializable{

private static final long serialVersionUID = -5093725544297637792L;

protected Long id;
protected Date created = new Date();
...
...

public Enquiry() {
}

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return this.id;
}

public void setId(Long id) {
this.id = id;
}
...
...

最佳答案

对于 Jackson,由于类型删除,您必须创建一个强类型列表类:

public class EnquiryList extends ArrayList<Enquiry> {
}

然后从您的 Controller 返回此列表:

@RequestMapping(value = "/viewSearchEnquiriesAjax", method = RequestMethod.GET, headers = "Accept=application/json")
public @ResponseBody EnquiryList getEnquiriesBySearchAjax(@RequestParam String name) {
EnquiryList list = new EnquiryList();
...
return list;
}

另请查看this answer关于类似的问题。

关于ajax - 如何在 Spring MVC 中以 Json 形式返回对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746382/

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