2013-05-21 78 views
5

我嘗試從primefaces現場。採用對話框架爲例folow中的對話框 - 基本頁JSF爲不工作

<p:commandButton value="Options" icon="ui-icon-extlink" action="#{dialogBean.viewCarsCustomized}" /> 

豆DialogBean

公共類DialogBean {

public String viewCarsCustomized() { 
    return "dialog:viewCars?modal=true"; 
} 

}

viewCars.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.org/ui"> 

    <h:head> 

    </h:head> 

    <h:body> 
     <p:dataTable var="car" value="#{tableBean.carsSmall}"> 
      <p:column headerText="Model"> 
       <h:outputText value="#{car.model}" /> 
      </p:column> 

      <p:column headerText="Year"> 
       <h:outputText value="#{car.year}" /> 
      </p:column> 

      <p:column headerText="Manufacturer"> 
       <h:outputText value="#{car.manufacturer}" /> 
      </p:column> 

      <p:column headerText="Color"> 
       <h:outputText value="#{car.color}" /> 
      </p:column> 
     </p:dataTable> 
    </h:body> 

</html> 

這是我的例子在我的豆。 我嘗試這樣

public String viewComposant(){ 
     return "dialog:AjoutC?modal=true"; 
    } 

它不工作,我嘗試做這樣。但每一次錯誤

不可能去已找到未CAS德導航通訊員depuis L'ID 德VUE「 /pagess/Parsing/ReacgModule.xhtml'pour l'action '#{parserXls.viewComposant()}'avec lerésultat 'dialog:/pagess/pagesComposant/AjoutC.jsf?modal = true'。

public String viewComposant(){ 
     return "dialog:/pagess/pagesComposant/AjoutC.jsf?modal=true"; 
    } 

但是當我做這樣的頁面returend但不是我喜歡

public String viewComposant(){ 
      return "/pagess/pagesComposant/AjoutC.jsf"; 
     } 
+1

您正在使用哪個PF版本?是否與展示頁面的頁腳中提到的一樣? 「對話框:導航結果前綴」自4.0以來是新的(目前仍處於測試階段)。 – BalusC

+0

3.5版本的primefaces –

回答

6

3.5版本primefaces

從該dialog:導航結果前綴在PrimeFaces 4.0中引入了"Dialog Framework",並且不要w舊版本的ork。

所以,你已經2種選擇:

  1. 升級到PrimeFaces 4.0(注:這是目前仍處於測試階段)
  2. 使用 「舊」 的dialogWidgetVar.show()在JavaScript中JSF的方法或visible="#{someCondition}。另見the <p:dialog> examples in PrimeFaces showcase

更新:按照註釋,這裏是你如何能與JS widgetVar方式使用它:

<p:button value="Open dialog" onclick="w_dialog.show(); return false;" /> 
<p:dialog widgetVar="w_dialog"> 
    <p>Dialog's content.</p> 
<p:dialog> 

這裏是你如何可以使用visible方法在JSF:

<h:form> 
    <p:commandButton value="Open dialog" action="#{bean.showDialog}" update=":dialog" /> 
</h:form> 
<p:dialog id="dialog" visible="#{bean.showDialog}"> 
    <p>Dialog's content.</p> 
<p:dialog> 

private boolean showDialog; 

public void showDialog() { 
    showDialog = true; 
} 

public boolean isShowDialog() { 
    return showDialog; 
} 

如有必要,您可以將<p:dialog>移動到包含文件中,其中包含<ui:include>

+0

你有沒有使用dialogWidgetVar.show()的例子,使它的工作。事先感謝你 –

+0

我不明白它。我應該讓visisble =「#」其中。我有一個頁面,我會將其顯示爲對話框,你能否向我解釋更多 –

+1

查看已更新的答案。 – BalusC