2013-05-21 34 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