ajax call

时间:2015-10-07 10:33:27

标签: ajax spring-mvc

在我的表单中,我有表格显示一些客户数据。用户可以点击行查看所有客户数据。

<div class="container">
    <table class="table table-bordered" style="direction: rtl">
        <thead>
        <tr>
            <th style="text-align: center">customer name</th>
            <th style="text-align: center">customer ID</th>
        </tr>
        </thead>
        <tbody>
        <c:forEach items="${customers}" var="customer" varStatus="loop">
            <tr onclick="retrieveCustomer('${loop.index}')">
                <td id="id-${loop.index}">${customer.customerId}</td>
                <td>${customer.customerName}</td>
            </tr>
        </c:forEach>
        </tbody>
    </table>
</div>

<script>
    function retrieveCustomer(id) {
        debugger;
        $.ajax({
            url: "<%=request.getContextPath()%>/show_selected_customer",
            data: {customerId: $('#id-' + id).text()},
            type: "GET",

            success: function (response) {
            },
            error: function (xhr, status, error) {
                alert(error);
            }
        });
    };
</script>

并在我的控制器中:

@RequestMapping(value = "/show_selected_customer", method = RequestMethod.GET)
public ModelAndView showSelectedCustomer(@RequestParam("customerId") String customerId) {
    Map<String, Object> model = new HashMap<>();
    Customer customer = coreService.getCustomer(customerId);
    model.put("customer", customer);

    return new ModelAndView("showCustomerData", model);
}

瓦片:

<definition name="showCustomerData" extends="base.definition">
    <put-attribute name="title" value="customer data"/>
    <put-attribute name="content" value="/WEB-INF/jsp/show_customer_data.jsp"/>
</definition>

直到现在每件事都正常工作。 enter image description here

我的问题是,它没有显示show_customers.jsp页面,甚至我的日志中也没有错误。 我的问题是什么,是因为ajax电话?我没有使用@responsebody并希望显示带有返回modelandview的customers.jsp页面。谢谢

1 个答案:

答案 0 :(得分:0)

使用响应正文注释并将您的实体转换为JSON并返回它。