【问题标题】:Calling jsp with ajax+spring MVCajax+spring MVC调用jsp
【发布时间】:2012-05-19 10:13:54
【问题描述】:

我在使用 ajax+spring mvc 从控制器返回 jsp 时遇到问题。我想刷新整页的一部分。实际上这是显示标签表。我的控制器向我发送了这个页面,但是从控制器返回给我的数据是一个 jstl 标签,它不是 html 页面。所以浏览器当然不会显示那个页面。

$(document).ready(function() {
    alert("asdfads");
    //$('#content').load('<c:url value="/pages/new.jsp"/>');
    $.ajax({    
        url : '/shop/getCartProducts/ajax/',
        type : 'GET',
        async: false,
        data : {},              
        success : function(data) {
            $('#content').html(data);
            alert(data);                                                
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR + " : " + textStatus + " : " + errorThrown);
        }
    });
});

我的Controller 看起来像这样

@RequestMapping(value = "/getCartProducts/ajax/", method = RequestMethod.GET)
String ajaxGetProdCart(HttpServletRequest request, Model model) {
    LOG.error("We are in the controller");
    PaginatedListImpl<Product> paginatedList = new PaginatedListImpl<Product>(request);
    productService.getProductsFromCart(paginatedList, null, 100);
    model.addAttribute("paginatedList", paginatedList);
    return "cartProduct";
}

cartProduct.jsp

<display:table class="table" id="product" name="paginatedList" defaultsort="1" requestURI="/shop/cart/" excludedParams="*" export="false">
<display:column>
    <a href='<c:url  value="/cart/remove/"/>'> <img
        src='<c:url value = "/resources/images/forbidden.png"/>'>
    </a>
</display:column>
<display:column sortable="false" sortProperty="name" title="Product"
    maxLength="55">

    <c:url var="prodUrl" value="/product/${product.product_id}/" />
    <a href='<c:out value="${prodUrl}"/>'> <c:out
            value="${product.name}" />
    </a>
</display:column>
<display:column property="price" paramId="price" sortable="false"
    title="Price" href="#" />
<display:column property="descr" sortable="true" paramName="descr"
    title="Description" maxLength="250" sortName="descr" /></display:table>

警告显示此代码它不显示 html。

【问题讨论】:

    标签: ajax jsp spring-mvc render


    【解决方案1】:

    如果你给我们看的是 JSP 的完整代码,那你只是忘了在 JSP 的顶部声明两个 taglib:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
    

    【讨论】:

    • 我是否需要添加任何特定的视图解析器才能在 ajax 调用时将其放入成功回调处理程序中。我配置了内部视图解析器。
    猜你喜欢
    • 1970-01-01
    • 2014-09-26
    • 2017-10-13
    • 1970-01-01
    • 2017-06-04
    • 2018-12-05
    • 2014-08-05
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多