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 2 用于修改数据的primefaces datatable对话框_Jsf 2_Primefaces_Datatable - Fatal编程技术网

Jsf 2 用于修改数据的primefaces datatable对话框

Jsf 2 用于修改数据的primefaces datatable对话框,jsf-2,primefaces,datatable,Jsf 2,Primefaces,Datatable,这是我的第一篇文章。这个网站和所有参与的人都很棒。谢谢大家。我的问题是:我有一个带有对话框的datatable,它显示所选寄存器的信息。那很好。但是,如果我尝试使用该对话框修改信息,则该字段不会显示信息。EclipseJuno2ee、PrimeFaces3.5以及jsf2和Tomcat7.0.39。Java 7.0.07 64位 页面admin.xhtml .... ui加载的页面adminusers.xhtml:include <p:panel id="usuarios" head

这是我的第一篇文章。这个网站和所有参与的人都很棒。谢谢大家。我的问题是:我有一个带有对话框的datatable,它显示所选寄存器的信息。那很好。但是,如果我尝试使用该对话框修改信息,则该字段不会显示信息。EclipseJuno2ee、PrimeFaces3.5以及jsf2和Tomcat7.0.39。Java 7.0.07 64位

页面admin.xhtml


....
ui加载的页面adminusers.xhtml:include

<p:panel id="usuarios" header="USUARIOS" style="background: transparent; border: 1; width: 850px;">
    <p:commandButton value="Nuevo usuario" type="button" onclick="newuser.show()" immediate="true"/>
    <br /><br />
    <p:dataTable id="usertable" var="data" value="#{DTableCustomerBean.datos}" emptyMessage="Sin datos."
                resizableColumns="true" style="text-align: center; align: center; border-radius: 1.6em;"
                selection="#{DTableCustomerBean.selectedCustomer}" selectionMode="single" rowKey="#{data.id}" >
        <p:columns value="#{DTableCustomerBean.columns}" var="column" columnIndexVar="colIndex" 
                        width="#{column.width}">
            <f:facet name="header">#{column.header}</f:facet>
            <h:outputText value="#{data[column.property]}" />
        </p:columns>
        <p:column style="width: 80px;">
            <p:commandLink update=":adminform:showuserform" oncomplete="showuser.show()" immediate="true" 
                            title="Ver" style="margin-right: 10px;">
                <img src="images/info.png" style="width: 20px; height: 20px; border: 0px;"/>
                <f:setPropertyActionListener value="#{data}" target="#{DTableCustomerBean.selectedCustomer}" />
            </p:commandLink>  
            <p:commandLink update=":adminform:edituserform" oncomplete="edituser.show()" immediate="true" 
                            title="Modificar" style="margin-right: 10px;">
                <img src="images/modificar.png" style="width: 20px; height: 20px; border: 0px;"/>
                <f:setPropertyActionListener value="#{data}" target="#{DTableCustomerBean.selectedCustomer}" />
            </p:commandLink>
            <p:commandLink update=":adminform:showuserform" oncomplete="showuser.show()" immediate="true" 
                            title="Borrar" style="margin-right: 10px;">
                <img src="images/delete.png" style="width: 20px; height: 20px; border: 0px;"/>
                <f:setPropertyActionListener value="#{data}" target="#{DTableCustomerBean.selectedCustomer}" />
            </p:commandLink> 
        </p:column>
    </p:dataTable>



<p:dialog id="edituserdlg" header="Modificar datos" widgetVar="edituser" resizable="FALSE" modal="TRUE">
        <h:messages errorClass="errorMessage" infoClass="infoMessage" warnClass="warnMessage" />
        <h:panelGrid id="edituserform" columns="2"  cellpadding="4" cellspacing="4" 
                                                    style="font-size:16px; align: center; margin: 0 auto;" >
            <h:outputText value="Identificador:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.id}" style="font-weight: bold;" />
            <h:outputText value="Nombre:" />
            <p:inputText id="edtnombre" value="#{DTableCustomerBean.selectedCustomer.nombre}" size="20" maxlength="20" 
                                style="font-weight: bold;" />
            <h:outputText value="Apellido:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.apellido}" style="font-weight: bold;" />
            <h:outputText value="Empresa:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.empresa}" style="font-weight: bold;" />
            <h:outputText value="Dirección:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.direccion}" style="font-weight: bold;" />
            <h:outputText value="Rut:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.rut}" style="font-weight: bold;" />
            <h:outputText value="Teléfonos:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.telefonos}" style="font-weight: bold;" />
            <h:outputText value="Usuario:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.usuario}" style="font-weight: bold;" />
            <h:outputText value="Permisos:" />
            <h:outputText value="#{DTableCustomerBean.selectedCustomer.tipoUsuario}" style="font-weight: bold;" />

        </h:panelGrid>
        <p:panel style="margin-left: 30px; display: block; margin: 0 auto; text-align: center; background: transparent; border: 0;">
            <p:commandButton value="Modificar" type="submit" oncomplete="edituser.hide()" update="usuario" />
            <p:commandButton value="Cancelar" type="button" onclick="edituser.hide()" style="margin-left: 30px;"/>
        </p:panel>




#{column.header}

豆角

@ManagedBean(name="DTableCustomerBean")
// @RequestScoped
// @SessionScoped
@ViewScoped
public class DTableCustomerBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private List<ColumnModel> columns;
    private List<Customer> datos;

    private String columnName;
    private Customer selectedCustomer;

    public DTableCustomerBean() {
        System.out.println("Inicia DTableCustomerBean");
        createColumns();
        addData();
    }



    // Getters and Setters
    public List<ColumnModel> getColumns() {
        return columns;
    }
    public void setColumns(List<ColumnModel> columns) {
        this.columns = columns;
    }
    public List<Customer> getDatos() {
        return datos;
    }
    public void setDatos(List<Customer> datos) {
        this.datos = datos;
    }
    public String getColumnName() {
        return columnName;
    }
    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
    public Customer getSelectedCustomer() {
        return selectedCustomer;
    }
    public void setSelectedCustomer(Customer selectedCustomer) {
        this.selectedCustomer = selectedCustomer;
    }

    // Fin Getters and Setters


    private void createColumns() {

        System.out.println("DTableCustomerBean createColumns");
        columns = new ArrayList<ColumnModel>();
        columns.add(new ColumnModel("Nombre", "nombre", 100));
        columns.add(new ColumnModel("Apellido", "apellido", 100));
        columns.add(new ColumnModel("Empresa", "empresa", 150));
        columns.add(new ColumnModel("Teléfonos", "telefonos", 150));
        columns.add(new ColumnModel("Usuario", "usuario", 50));
    }



    static public class ColumnModel implements Serializable {
        private static final long serialVersionUID = 1L;

        private String header;
        private String property;
        private int width;

        public ColumnModel(String header, String property, int width) {
            this.header = header;
            this.property = property;
            this.width = width;
        }

        public String getHeader() {
            return header;
        }

        public String getProperty() {
            return property;
        }

        public int getWidth() {
            return width;
        }
    }

    private void addData() {
        UserDAO userdao;

        System.out.println("DTableCustomerBean addData");
        userdao = new UserDAO();
        datos = new ArrayList<Customer>();
        datos = userdao.getAllCustomers();
    }
}
@ManagedBean(name=“DTableCustomerBean”)
//@RequestScoped
//@SessionScoped
@视域
公共类DTableCustomerBean实现可序列化{
私有静态最终长serialVersionUID=1L;
私有列表列;
私人名单DATO;
私有字符串列名;
私人客户选择客户;
公共DTableCustomerBean(){
System.out.println(“Inicia DTableCustomerBean”);
createColumns();
addData();
}
//接球手和接球手
公共列表getColumns(){
返回列;
}
公共void集合列(列表列){
this.columns=列;
}
公共列表getDatos(){
返回DATO;
}
公共无效数据集(列表数据集){
this.datos=datos;
}
公共字符串getColumnName(){
返回列名称;
}
public void setColumnName(字符串columnName){
this.columnName=columnName;
}
公共客户getSelectedCustomer(){
返回所选客户;
}
公共作废设置selectedCustomer(Customer selectedCustomer){
this.selectedCustomer=selectedCustomer;
}
//翅片吸气剂和沉降剂
私有void createColumns(){
System.out.println(“DTableCustomerBean createColumns”);
columns=newarraylist();
添加(新的ColumnModel(“Nombre”,“Nombre”,100));
添加(新的ColumnModel(“Apellido”,“Apellido”,100));
添加(新的ColumnModel(“Empresa”,“Empresa”,150));
添加(新的ColumnModel(“Teléfonos”,“telefonos”,150));
添加(新的ColumnModel(“Usuario”,“Usuario”,50));
}
静态公共类ColumnModel实现了可序列化{
私有静态最终长serialVersionUID=1L;
私有字符串头;
私有财产;
私有整数宽度;
公共列模型(字符串头、字符串属性、整型宽度){
this.header=头;
this.property=属性;
这个。宽度=宽度;
}
公共字符串getHeader(){
返回头;
}
公共字符串getProperty(){
归还财产;
}
公共int getWidth(){
返回宽度;
}
}
私有void addData(){
UserDAO UserDAO;
System.out.println(“DTableCustomerBean addData”);
userdao=newuserdao();
datos=新的ArrayList();
datos=userdao.getAllCustomers();
}
}
outputText字段中的数据显示正确。字段inputText id=“edtnombre”显示为空,但名称为。当然,如果我将inputText更改为outputText,它可以正常工作

我苦苦寻找解决办法,但什么也没找到。我尝试过不同的想法,但没有成功


有人能帮忙吗?谢谢

您的数据表和对话框以一种
形式出现。这行不通

将对话框放在表单之外(但如果“包含”整个文件,则不能)

你应该: -一个表单中包含dataTable -对话框位于第一个窗体之外 -第二个表单内部对话框
-更新属性,引用对话框中的表单和该表单中的panelGrid。

您的数据表和对话框位于一个
表单中。这行不通

将对话框放在表单之外(但如果“包含”整个文件,则不能)

你应该: -一个表单中包含dataTable -对话框位于第一个窗体之外 -第二个表单内部对话框
-更新属性,引用对话框中的表单和该表单中的panelGrid。

Well。我发现了问题。在这种情况下,EclipseWebNavigator不能很好地工作。现在它工作正常。在页面中显示datatable之后,似乎需要一些时间才能正常工作。也许是Eclipse的问题。我发现了问题。在这种情况下,EclipseWebNavigator不能很好地工作。现在它工作正常。在页面中显示datatable之后,似乎需要一些时间才能正常工作。也许是Eclipse的一些问题。
@ManagedBean(name="DTableCustomerBean")
// @RequestScoped
// @SessionScoped
@ViewScoped
public class DTableCustomerBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private List<ColumnModel> columns;
    private List<Customer> datos;

    private String columnName;
    private Customer selectedCustomer;

    public DTableCustomerBean() {
        System.out.println("Inicia DTableCustomerBean");
        createColumns();
        addData();
    }



    // Getters and Setters
    public List<ColumnModel> getColumns() {
        return columns;
    }
    public void setColumns(List<ColumnModel> columns) {
        this.columns = columns;
    }
    public List<Customer> getDatos() {
        return datos;
    }
    public void setDatos(List<Customer> datos) {
        this.datos = datos;
    }
    public String getColumnName() {
        return columnName;
    }
    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
    public Customer getSelectedCustomer() {
        return selectedCustomer;
    }
    public void setSelectedCustomer(Customer selectedCustomer) {
        this.selectedCustomer = selectedCustomer;
    }

    // Fin Getters and Setters


    private void createColumns() {

        System.out.println("DTableCustomerBean createColumns");
        columns = new ArrayList<ColumnModel>();
        columns.add(new ColumnModel("Nombre", "nombre", 100));
        columns.add(new ColumnModel("Apellido", "apellido", 100));
        columns.add(new ColumnModel("Empresa", "empresa", 150));
        columns.add(new ColumnModel("Teléfonos", "telefonos", 150));
        columns.add(new ColumnModel("Usuario", "usuario", 50));
    }



    static public class ColumnModel implements Serializable {
        private static final long serialVersionUID = 1L;

        private String header;
        private String property;
        private int width;

        public ColumnModel(String header, String property, int width) {
            this.header = header;
            this.property = property;
            this.width = width;
        }

        public String getHeader() {
            return header;
        }

        public String getProperty() {
            return property;
        }

        public int getWidth() {
            return width;
        }
    }

    private void addData() {
        UserDAO userdao;

        System.out.println("DTableCustomerBean addData");
        userdao = new UserDAO();
        datos = new ArrayList<Customer>();
        datos = userdao.getAllCustomers();
    }
}