8

Primefaces 对话框架打开相同的 portlet 页面而不是所需的页面。

<p:commandButton value="Dialog" process="@this" icon="ui-icon-extlink" actionListener="#{controller.viewDialog}" />

豆:

public void viewDialog() {
    Map<String,Object> options = new HashMap<String, Object>();
    options.put("modal", true);
    options.put("draggable", false);
    options.put("resizable", true);
    options.put("contentHeight", 320);

    RequestContext.getCurrentInstance().openDialog("viewDialog", options, null);    

viewDialog.xhtml:

<f:view xmlns="http://www.w3.org/1999/xhtml"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:portlet="http://java.sun.com/portlet_2_0">
<h:head />
<h:body styleClass="jsf2-portlet">
    <f:event type="preRenderView" listener="#{dialog.initController}" />

</h:body>

4

2 回答 2

10

如果没有,则在引用 viewDialog.xhtml 的 faces-config.xml 中添加“viewDialog”的导航规则。

<application>

    <action-listener>org.primefaces.application.DialogActionListener</action-listener>
    <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
    <view-handler>org.primefaces.application.DialogViewHandler</view-handler>

</application>


<navigation-rule>
        <from-view-id>*</from-view-id>
        <navigation-case>
            <from-outcome>viewDialog</from-outcome>
            <to-view-id>{path}/viewDialog.xhtml</to-view-id>
        </navigation-case>
</navigation-rule>
于 2015-04-25T13:16:10.760 回答
4

这是由Liferay 论坛中描述的错误和问题 FACES-2168引起的。

我不能只将更正的 faces-impl 与旧的 liferay (6.1.1) 一起使用。

于 2015-04-23T06:57:32.503 回答