Liferay动态jsp由jQuery加载

时间:2015-11-30 12:20:30

标签: liferay

我想在liferay上动态加载页面。现在我有jsp与renderURL和div:

<div id="sub_content2"></div>   

<portlet:renderURL var="displayOtherDocumentURL1">
<portlet:param name="action" value="displayOtherDocument" />
<portlet:param name="activeTab" value="2" />
<portlet:param name="activeVerticalTab" value="6" />
</portlet:renderURL>

<aui:script>
$(document).ready(function() {
    //alert('1231');
    //$("#sub_content").load("displayEditSchoolEducation");
    //alert('11');
    $("#sub_conten2").load("${displayOtherDocumentURL1}");
        alert('aaa');
})

在控制器中我有这个方法:

  @RenderMapping(params = "action=displayOtherDocument")
public String displayOtherDocument(final RenderRequest request, final RenderResponse response,
        final ModelMap modelMap) throws PortalException, SystemException {}

通常一切正常。但动态加载不是:(帮助!Hilfe!Na pomoc!

3 个答案:

答案 0 :(得分:0)

为了加载ajax,你应该创建一个ResourceMapping而不是RenderMapping。

答案 1 :(得分:0)

在我看来你错过了jsp的名字

<portlet:renderURL var="displayOtherDocumentURL1">
    <portlet:param name="jspPage" value="/jsp/new_page.jsp"/>
</portlet:renderURL>

然后

$("#sub_conten2").load("${displayOtherDocumentURL1}");

应该有效。如果您想使用资源而不是有意义,如果您没有进行任何jsp预处理,那么您必须打开文件并发送整个文件。

答案 2 :(得分:0)

我找到了解决方案:

<portlet:resourceURL var="displayOtherDocumentURL" id="displayOtherDocument"></portlet:resourceURL>

-

$("#displayOtherDocumentDIV").load("${displayOtherDocumentURL}");

-

@ResourceMapping(value = "displayOtherDocument")
    public ModelAndView displayOtherDocument(final ResourceRequest request) throws PortalException, SystemException {

        final ModelAndView modelAndView = new ModelAndView("components/otherDocumentForm", model);
        return modelAndView;
    }

简单,有效;)