2015-03-12 18 views
8

Khung thoại Primefaces mở cùng một trang portlet thay vì trang bắt buộc.Khung thoại Primefaces 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

dường như không ai gặp sự cố này trước đây: ( – rjomir

+0

Bạn đã giải quyết được vấn đề này chưa? – ACV

Trả lời

10

nếu không, sau đó thêm Quy tắc điều hướng cho "viewDialog" trong faces-config.xml của bạn tham chiếu 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

này là do một lỗi được mô tả tại the Liferay forum và vấn đề FACES-2168.

Tôi không thể chỉ sử dụng mặt cắt được sửa chữa với tuổi thọ cũ (6.1.1).

Các vấn đề liên quan