Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 可编辑对话框面_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 可编辑对话框面

Jsf 可编辑对话框面,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我从primefaces开始,尝试为我的datatable创建一个可编辑的对话框。当我点击编辑按钮(datatable的页脚)时,对话框出现,但不显示所选行的值。怎么了 我的xhtml文件: <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tr

我从primefaces开始,尝试为我的datatable创建一个可编辑的对话框。当我点击编辑按钮(datatable的页脚)时,对话框出现,但不显示所选行的值。怎么了

我的xhtml文件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <body>

        <ui:composition template="./../WEB-INF/template_sistema.xhtml">

            <ui:define name="content">
                <h:form prependId="false">  

                    <p:dataTable id="dataTable" var="resultadoBanescap" value="#{lstResultados.resultadoBanescap}"  
                                 paginator="true" rows="10"  
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                 rowsPerPageTemplate="5,10,15,20"
                                 emptyMessage="Não foram encontradas informações"
                                 selection="#{resultadoBanescap.selecionado}" selectionMode="single">  

                        <p:column id="colunaNumero" 
                                  filterBy="#{resultadoBanescap.rbcnr}" 
                                  sortBy="#{resultadoBanescap.rbcnr}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Número" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.rbcnr}" />  
                        </p:column>  

                        <p:column id="colunaDia" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Dia" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" />  
                        </p:column>  

                        <p:column id="colunaMes" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Mês" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" />  
                        </p:column>  

                        <p:column id="colunaAno" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Ano" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" />  
                        </p:column> 

                        <f:facet name="footer">  
                            <p:commandButton id="viewButton" 
                                             value="View"  
                                             update=":form:dataTable" 
                                             oncomplete="detalheDialog.show()"
                                             onclick="detalheDialog.show()"/>  
                        </f:facet> 

                    </p:dataTable>  

                    <p:dialog id="dialog" header="Detalhes" widgetVar="detalheDialog" resizable="false"  
                              width="300" showEffect="clip" hideEffect="clip" modal="true" appendToBody="true">  

                        <h:form id="frmUpdate">
                            <h:panelGrid id="display" columns="2" cellpadding="4">  
                                <h:outputText value="Número:" />  
                                <h:inputText value="#{lstResultados.selecionado.rbcnr}" />  

                                <h:outputText value="Dia:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcdd}" />  

                                <h:outputText value="Mês:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcmm}" />  

                                <h:outputText value="Ano:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcaa}" />  
                            </h:panelGrid>  
                        </h:form>
                    </p:dialog>  

                </h:form>  
            </ui:define>

        </ui:composition>

    </body>
</html>

我的bean文件:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.banestes.ui.bean;

import br.com.banestes.domain.TbResultadoBanescap;
import br.com.banestes.domain.controller.TbResultadoBanescapJpaController;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author 030072182
 */
@RequestScoped
@ManagedBean(name = "lstResultados")
public class ListResultados {

    private List<TbResultadoBanescap> resultadoBanescap;
    private TbResultadoBanescap selecionado;

    public ListResultados() {
        TbResultadoBanescapJpaController ctrl = new TbResultadoBanescapJpaController();
        resultadoBanescap = ctrl.findTbResultadoBanescapEntities();
    }

    public List<TbResultadoBanescap> getResultadoBanescap()
    {
        return resultadoBanescap;
    }

    public TbResultadoBanescap getSelecionado() {
        return selecionado;
    }

    public void setSelecionado(TbResultadoBanescap selecionado) {
        this.selecionado = selecionado;
    }


}
/*
*要更改此模板,请选择工具|模板
*然后在编辑器中打开模板。
*/
包br.com.banestes.ui.bean;
导入br.com.banestes.domain.TbResultadoBanescap;
导入br.com.banestes.domain.controller.TbResultadoBanescapJpaController;
导入java.util.List;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.RequestScope;
/**
*
*@author 030072182
*/
@请求范围
@ManagedBean(name=“lstreultados”)
公共类ListResultados{
私有列表resultadoBanescap;
私人TbResultadoBanescap selecionado;
公共列表resultados(){
TbResultadoBanescapJpaController ctrl=新TbResultadoBanescapJpaController();
resultadoBanescap=ctrl.findtbresultadobanescapenties();
}
公共列表getResultadoBanescap()
{
返回结果数据库;
}
公共TbResultadoBanescap getSelecionado(){
返回seleconado;
}
公共无效setSelecionado(TbResultadoBanescap selecionado){
this.selecionado=selecionado;
}
}
另一个问题是:是否可以在另一个xhtml中创建一个表单并在对话框中使用he?

以下几点:

  • 选中的行不会显示在对话框中,因为单击页脚中的按钮时对话框不会更新。您的更新应该是
    update=“:form:dataTable:dialog”
  • 除非您正在对datatable上的数据执行某些操作(我在代码中没有看到),否则您也应该从更新中删除
    :form:datatable
  • 在您的
    中,您正在将所选数据放入
    resultadoBanescap.selecionado
    。但是,在对话框中,您正在从
    lstreultados.selecionado
    读取数据。检查逻辑
  • 你应该把你的对话框从第一个窗体中带出来
  • 是的,可以在另一个xhtml文件中创建表单,然后使用
    将其添加到对话框中

  • 非常感谢您的回复,我将验证您列出的ITEN。没有工作。现在他传入setElecionado方法(之前没有执行),但之后会显示对话框。