我有Spring 4 MVC Web应用程序,我想用Ajax进行GET调用,返回一个简单对象列表。假设对象是这样的:
class Categories {
String name;
}
和电话是这样的:
function getCategories() {
$.ajax({
type: "GET",
url: "categoryFilter.html",
dataType: "json",
success: function (result) {
alert(result);
},
error: function (result) {
alert("error");
}
});
}
比我想在Spring表单中显示这个对象,如下所示:
<form:form method="post" action="searchShop.html" modelAttribute="Categories">
<c:forEach var="cat" items="${result}">
<span><form:input path="nome" value="${cat.name}" /></span>
</c:forEach>
</form:form>
我在谷歌上搜索,我看到我可以将结果附加到div或类似的东西,但我可以做那样的事情?
感谢您的回复。我的控制器是:
@RequestMapping("/categoryFilter")
public Response showCategory() {
List<Categoria> categoryList = categoryService.getAllCategories();
Response response = new Response("Done", categoryList);
return response;
}
和对象响应:
public class Response {
private String status;
private Object data;
....
}
我已经尝试了许多不同的方法,使用@GetMapping等等。但我总是收到404错误的请求。
非常感谢
是的我的问题是如何使用jackson库自动转换pojo但是在Spring 3之后我需要很多bean配置而不是修改我的控制器,如下所示:
@ResponseBody
@RequestMapping("/categoryFilter")
public String showCategory() {
List<Categoria> catList = categoryService.getAllCategories();
JSONArray json = new JSONArray(catList);
return json.toString();
}
你的代码:
var resObjs= JSON.stringify(result);
var cats= JSON.parse(resObjs);
$("#category-form").append('<form:form method="post" action="searchShop.html" modelAttribute="Categoria">');
$.each(JSON.parse(cats), function(i, obj) {
$("#category-form").append('<form:input path="nome" value="'+obj.nome+'" />' + obj.nome); // this line
});
$("#category-form").append('<input type="submit" value="Submit"/>');
$("#category-form").append('</form:form>');
请查看$ .each中的行,该行visualiza输入类型的值为字符串+ obj.name +后跟变量的有效值(类别的名称)..为什么我不能放置dinamically值在那里??我疯了..谢谢
是的,你可以将json值附加到div,这就是我用json数据填充选择下拉列表所做的事情,类似的事情也可以用于表单。
success: function (responseJson) {
var responseObjects= JSON.stringify(responseJson);
var categories= JSON.parse(responseObjects);
$('#divid').empty();
$('#divid').append($('<option value="0">').text("Select Variant"));
$.each(categories, function(i, obj) { $("#divid").append(('<option>
</option>').val(obj.id).html(obj.value));});
}