如何通过ajax调用显示Java对象

问题描述 投票:0回答:1

我有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值在那里??我疯了..谢谢

java ajax spring-mvc
1个回答
0
投票

是的,你可以将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));});
    }
© www.soinside.com 2019 - 2024. All rights reserved.