在添加了 liferay-portlet:runtime 标签的嵌入式 portlet 中保存首选项

Saving preferences in a embedded portlet added with liferay-portlet:runtime tag

我创建了一个 portlet(父),它显示为 accordion 的内容是一个嵌入式 portlet(也是我创建的)。

作为上下文,在父 portlet 的 JSP(视图模式)下方:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>

<jsp:useBean id="titulo" class="java.lang.String" scope="request" />


<portlet:defineObjects />

<%! String idPortlet="test_WAR_boxportlet_INSTANCE_fadewsio22a";  %>
<div class="root-accordion">
    <div class="accordion" id="accordion<%= idPortlet %>">
        <div class="accordion-group accordion-caret">  
            <div class="accordion-group accordion-caret">  
                <div class="accordion-heading accordion-cabecalho">
                    <a href="#conteudoac<%= idPortlet %>" data-parent="#accordion<%= idPortlet %>" data-toggle="collapse" class="accordion-toggle collapsed">
                        <%= titulo %>
                    </a>
                </div>
                <div class="accordion-body collapse" id="conteudoac<%= idPortlet %>">
                    <div class="accordion-inner accordion-conteudo">

                        <liferay-portlet:runtime portletName="<%= idPortlet %>" />
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

父 portlet 具有首选项(编辑模式)以及嵌入式 portlet。 但是,当我尝试保存嵌入式 portlet 的首选项时,页面会重新加载但无法退出嵌入式 portlet 的编辑模式。 当 portlet 独立使用(非嵌入式)时,首选项设置适用于作为嵌入式使用的 portlet。在两种情况下都可以在父 portlet 中编辑 "Preferences"。

当父 portlet 和嵌入式 portlet 都具有 "Preferences" 选项时是否有限制?

我必须做什么才能在嵌入式 portlet 中编辑(保存)首选项?

这是 LPS 解释了为什么目前无法使用这种方式并且不会为当前版本修复 https://issues.liferay.com/browse/LPS-33767

但是,我可以建议您的方法是通过添加到标记的部分代码来定义这些首选项。我不知道这是否能解决您的问题,这仍然是我目前认为的最佳想法。这里有一些 example 不是最漂亮的,但仍然是。