JSM286 SpringMVC portlet中的ResourceMapping

时间:2015-06-01 04:30:45

标签: jquery ajax spring-mvc liferay-6 jsr286

正在使用springMVC开发JSR286 portlet。我的portlet中有一个div,它将在我的模型中迭代一个集合并显示如下

<dl>
     <c:forEach var="product" items="${productList}">
        <dt>    
             <div><img src="<%=request.getContextPath()%>/images/banner.jpg" /></div>
             <div>${product.name} - ${product.price}</div>
             <div>${product.serviceOne}</div>
             <div>${product.servicetwo}</div>
             <div>${product.serviceThree}</div>
        </dt>
     </c:forEach>
</dl>

我有上一个和下一个链接。单击链接我需要异步刷新div与新内容(使用ajax)。我使用jQuery编写脚本。我可以使用资源请求(资源映射URL)替换模型中的集合。但我不知道如何刷新ajax成功的div,以便可以在portlet中查看新的集合。

技术人员给你的建议..

1 个答案:

答案 0 :(得分:0)

仅使用迭代逻辑创建了一个新的jsp。在资源请求中,我返回了jsp名称,从而查看解析器从视图文件夹中选择了相应的jsp,并将执行的内容作为响应返回。我把内容放在了ajax成功的div中。 下面是代码

@ResourceMapping("filterProducts")
public String filterProducts(Model model, ResourceRequest request,
          ResourceResponse response,
          @ModelAttribute("productModel") ProductModel productModel,
          ModelMap modelMap) throws IOException {
                   model.addAttribute("productModel", updatedProductModel);
                   return "productDetails";
}

$.ajax({
    url : fltURL,
    type : 'POST',
    datatype : 'html',  
    success : function(_html) {                         
          $('#midcontainer').html(_html);
    },
    error : function() {
          alert('error');
    }});

<portlet:resourceURL var="filterProductsURL" id="filterProducts"></portlet:resourceURL>