添加 JSP 到 portlet Liferay

Add JSP to portlet Liferay

我必须在 liferay 的文档和媒体 portlet 中显示 JPS。

我已经定义了一个动作class:CmisSearchPortletAction

public class CmisSearchPortletAction extends BaseStrutsPortletAction {
    @Override
    public void processAction(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
        // TODO
    }
    @Override
    public String render(StrutsPortletAction originalStrutsPortletAction,PortletConfig portletConfig,RenderRequest renderRequest, RenderResponse renderResponse) throws Exception {
        renderRequest.setAttribute("name", "World");
        return "/portlet/document_library/cmis_search.jsp";
    }
}

我将代码添加到 /html/portlet/document_library/toolbar.jsp 以执行我的操作:

<span id="<portlet:namespace />searchButtonContainer">
    <liferay-util:include page="/html/portlet/document_library/search_button.jsp" />
</span>

我创建页面 /html/portlet/document_library/search_button。jsp

<%@ include file="/html/portlet/document_library/init.jsp" %>

<liferay-ui:icon-menu align="left" direction="down" icon="" message="search" showExpanded="<%= false %>" showWhenSingleIcon="<%= true %>">

    <portlet:renderURL var="urlSearch">
        <portlet:param name="struts_action" value="/document_library/cmis_search" />
        <portlet:param name="redirect" value="<%= currentURL %>" />
    </portlet:renderURL>

    <liferay-ui:icon image="add_instance" message='<%="Busqueda Avanzada"%>' url="<%= urlSearch %>" />

</liferay-ui:icon-menu>

最后,我的 JPS 操作 (cmis_search.jsp):

<%@ include file="/html/portlet/document_library/init.jsp" %>
<%  String name = (String)request.getAttribute("name"); %>
Hello <%= name %>!

当我单击“搜索”按钮时,我的操作 (CmisSearchPortletAction) 被执行,我可以在 liferay 中查看 JSP (cmis_search.jsp),但这是问题所在。

内容不在 'Document and media' portlet 中。我怎样才能做到这一点?。

I Want to move the red one to the docs and media portlet like in this img

to display xxx.JSP inside the Document and Media portlet in liferay

文档和媒体 portlet 的 view.jsp 页面位于 /html/portlet/document_library 目录中。您可以使用 jsp 挂钩 extend/override 它。

我可能会在适当的地方使用<liferay-util:include page="xxx.jsp" />

Here 是你可以做到的。