2015-03-12 23 views
8

Primefaces Dialog Framework apre la stessa pagina portlet anziché la pagina richiesta.Primefaces Dialog Framework Liferay

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

Bean:

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> 

+0

sembra che nessuno abbia riscontrato questo problema prima :( – rjomir

+0

Sei riuscito a risolvere questo? – ACV

risposta

10

in caso contrario, aggiungere la regola di navigazione per "viewDialog" nel file faces-config.xml che fa riferimento a viewDialog.xhtml.

<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> 
4

Questo è causato da un bug descritto the Liferay forum e la questione FACES-2168.

Non ero in grado di utilizzare solo le facce corrette-impl con il vecchio liferay (6.1.1).