Problems with form

Asked

Viewed 35 times

0

Good morning.

I have a form where I need to edit, change and register records to be shown/selected in a datatable.

inserir a descrição da imagem aqui

I use two objects of type User. user and user. However, I’m having trouble editing values because the form ends up bringing the blank data.

Follow POJO, Bean and View.

xhtml user.

<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:h="http://java.sun.com/jsf/html"
    template="/resources/template/template_restrito.xhtml">

    <ui:define name="css">
        <h:outputStylesheet library="css" name="restrito.css" />
    </ui:define>

    <ui:define name="content">
        <div id="content">
            <br />
            <h:outputLabel value="Usuários" class="title" />
            <br />

            <h:form id="form">
                <p:commandButton value="Novo" icon="ui-icon-document"
                    actionListener="#{adminBean.novoUsuario}" process="@this"
                    update="dataTable" oncomplete="PF('usuarioDialog').show()"
                    class="botaoDataTable">
                    <p:resetInput target="usuario-dialog" />
                </p:commandButton>

                <p:commandButton icon="ui-icon-pencil" id="btnEditar" title="Editar"
                    disabled="#{adminBean.usuario == null}" class="botaoDataTable"
                    process="@this" update="dataTable :form"
                    oncomplete="PF('usuarioDialog').show()">
                    <p:resetInput target="usuario-dialog" />
                    <f:setPropertyActionListener target="#{adminBean.usuarioSelecao}"
                        value="#{adminBean.usuarioSelecao}" />
                </p:commandButton>

                <p:commandButton icon="ui-icon-trash" id="btnExcluir"
                    title="Excluir" disabled="#{adminBean.usuario == null}"
                    class="botaoDataTable" action="#{adminBean.excluirUsuario}"
                    process="@this" update="dataTable btnExcluir btnEditar" />

                <p:dataTable var="u" value="#{adminBean.usuarios}" paginator="true"
                    rows="10" class="dataTable" id="dataTable"
                    emptyMessage="Nenhum Usuario Cadastrado" paginatorPosition="bottom"
                    selection="#{adminBean.usuarioSelecao}" selectionMode="single"
                    rowKey="#{u.idUsuario}">

                    <p:ajax event="rowSelect"
                        updtate=":form:btnEditar :form:btnExcluir" />
                    <p:ajax event="rowUnselect"
                        updtate=":form:btnEditar :form:btnExcluir" />

                    <p:column headerText="Nome" sortBy="#{u.nomeUsuario}">
                        <h:outputText value="#{u.nomeUsuario}" />
                    </p:column>

                    <p:column headerText="E-mail" sortBy="#{u.emailUsuario}">
                        <h:outputText value="#{u.emailUsuario}" />
                    </p:column>
                </p:dataTable>

                <p:dialog header="Usuario" widgetVar="usuarioDialog"
                    id="usuario-dialog" resizable="false" modal="true"
                    closeOnEscape="true">
                    <p:messages />

                    <p:panelGrid styleClass="semBorda">
                        <p:row>
                            <p:column>
                                <h:outputLabel for="nome" value="Nome: "
                                    class="componentePF label" />
                            </p:column>
                            <p:column>
                                <p:inputText id="nome" value="#{adminBean.usuario.nomeUsuario}"
                                    class="componentePF text" />
                            </p:column>
                        </p:row>

                        <p:row>
                            <p:column>
                                <h:outputLabel for="email" value="E-mail: "
                                    class="componentePF label" />
                            </p:column>
                            <p:column>
                                <p:inputText id="email"
                                    value="#{adminBean.usuario.emailUsuario}"
                                    class="componentePF text" />
                            </p:column>
                        </p:row>

                        <p:row>
                            <p:column colspan="2">
                                <p:commandButton value="Cadastrar" icon="ui-icon-disk"
                                    action="#{adminBean.cadastrarUsuario}" id="cadastrarUsuario"
                                    ajax="false" class="componentePF button" />
                            </p:column>
                        </p:row>
                    </p:panelGrid>
                </p:dialog>
            </h:form>
        </div>
    </ui:define>
</ui:composition>

Java user.

package br.com.hidros.model.pojo;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import br.com.hidros.control.SampleEntity;

@Entity
@Table(name="usuario", schema="hidros")
public class Usuario implements Serializable, SampleEntity {

    private static final long serialVersionUID = 1L;

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int idUsuario;

    private String nomeUsuario;

    private String emailUsuario;

    private boolean ativo = true;

    private String senhaUsuario = "abc123";

    /***************************************/
    /************** Construtor *************/
    /***************************************/

    public Usuario() {

    }

    /***************************************/
    /********** Getters e Setters **********/
    /***************************************/

    public int getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(int idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getNomeUsuario() {
        return nomeUsuario;
    }

    public void setNomeUsuario(String nomeUsuario) {
        this.nomeUsuario = nomeUsuario;
    }

    public String getEmailUsuario() {
        return emailUsuario;
    }

    public void setEmailUsuario(String emailUsuario) {
        this.emailUsuario = emailUsuario;
    }

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public String getSenhaUsuario() {
        return senhaUsuario;
    }

    public void setSenhaUsuario(String senhaUsuario) {
        this.senhaUsuario = senhaUsuario;
    }

    @Override
    public Long getIdSampleEntity() {
        return Long.valueOf(idUsuario);
    }

    /***************************************/
    /************ Hash e Equals ************/
    /***************************************/

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + (ativo ? 1231 : 1237);
        result = prime * result
                + ((emailUsuario == null) ? 0 : emailUsuario.hashCode());
        result = prime * result + idUsuario;
        result = prime * result
                + ((nomeUsuario == null) ? 0 : nomeUsuario.hashCode());
        result = prime * result
                + ((senhaUsuario == null) ? 0 : senhaUsuario.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Usuario other = (Usuario) obj;
        if (ativo != other.ativo)
            return false;
        if (emailUsuario == null) {
            if (other.emailUsuario != null)
                return false;
        } else if (!emailUsuario.equals(other.emailUsuario))
            return false;
        if (idUsuario != other.idUsuario)
            return false;
        if (nomeUsuario == null) {
            if (other.nomeUsuario != null)
                return false;
        } else if (!nomeUsuario.equals(other.nomeUsuario))
            return false;
        if (senhaUsuario == null) {
            if (other.senhaUsuario != null)
                return false;
        } else if (!senhaUsuario.equals(other.senhaUsuario))
            return false;
        return true;
    }

}

Bean

package br.com.hidros.control.beans;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import br.com.hidros.control.dao.PermissaoDAO;
import br.com.hidros.control.dao.UsuarioDAO;
import br.com.hidros.control.dao.Usuario_PermissaoDAO;
import br.com.hidros.model.pojo.Permissao;
import br.com.hidros.model.pojo.Usuario;
import br.com.hidros.model.pojo.Usuario_Permissao;

@ManagedBean(name="adminBean")
@SessionScoped
@SuppressWarnings("unused")
public class AdminBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private Usuario usuario = new Usuario();
    private Usuario_Permissao usuarioPermissao = new Usuario_Permissao();
    private Permissao permissao = new Permissao();

    private Usuario usuarioSelecao = new Usuario();
    private Usuario_Permissao usuarioPermissaoSelecao  = new Usuario_Permissao();
    private Permissao permissaoSelecao  = new Permissao();

    private UsuarioDAO usuarioDAO = new UsuarioDAO();
    private Usuario_PermissaoDAO usuarioPermissaoDAO = new Usuario_PermissaoDAO();
    private PermissaoDAO permissaoDAO = new PermissaoDAO();

    private List<Usuario> usuarios;
    private List<Usuario_Permissao> permissoesUsuario;
    private List<Permissao> permissoes;

    /***************************************/
    /*********** Métodos Próprios **********/
    /***************************************/

    public String sair() {
        return "/restrito/homeSomore";
    }

    public void novoUsuario() {
        usuario = new Usuario();
    }

    public void novaPermissao() {
        permissao = new Permissao();
    }

    public void novoUsuarioPermissao() {
        usuarioPermissao = new Usuario_Permissao();
    }

    public void cadastrarUsuario() {
        usuarioDAO.salvar(usuario);
    }

    public void cadastrarPermissao() {
        permissaoDAO.salvar(permissao);
        permissao = null;
        permissaoSelecao = null;
    }

    public void cadastrarUsuarioPermissao() {
        usuarioPermissaoDAO.salvar(usuarioPermissao);
    }

    public void excluirUsuario() {
        usuarioPermissaoDAO.excluir(usuarioSelecao);
        usuarioDAO.excluir(usuarioSelecao);
    }

    public void excluirPermissao() {
        usuarioPermissaoDAO.excluir(permissaoSelecao);
        permissaoDAO.excluir(permissaoSelecao);
        permissao = null;
        permissaoSelecao = null;
    }

    public void excluirUsuarioPermissao() {
        usuarioPermissaoDAO.excluir(usuarioPermissaoSelecao);
    }

    public String logar() {
        FacesContext context = FacesContext.getCurrentInstance();
        ExternalContext external= context.getExternalContext();
        HttpServletRequest request =(HttpServletRequest) external.getRequest();

        if(request.isUserInRole("ROLE_USUARIO") || request.isUserInRole("ROLE_ADMIN") || request.isUserInRole("ROLE_GERENTE"))
            return "/restrito/home.jsf";
        return "/publico/home.jsf";
    }

    /***************************************/
    /********** Getters e Setters **********/
    /***************************************/

    public Usuario getUsuario() {
        return usuario == null ? usuario = new Usuario() : usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Usuario_Permissao getUsuarioPermissao() {
        return usuarioPermissao == null ? usuarioPermissao = new Usuario_Permissao() : usuarioPermissao;
    }

    public void setUsuarioPermissao(Usuario_Permissao usuarioPermissao) {
        this.usuarioPermissao = usuarioPermissao;
    }

    public Permissao getPermissao() {
        return permissao == null ? permissao = new Permissao() : permissao;
    }

    public void setPermissao(Permissao permissao) {
        this.permissao = permissao;
    }

    public Usuario getUsuarioSelecao() {
        return usuarioSelecao;
    }

    public void setUsuarioSelecao(Usuario usuarioSelecao) {
        this.usuarioSelecao = usuarioSelecao;
    }

    public Usuario_Permissao getUsuarioPermissaoSelecao() {
        return usuarioPermissaoSelecao;
    }

    public void setUsuarioPermissaoSelecao(Usuario_Permissao usuarioPermissaoSelecao) {
        this.usuarioPermissaoSelecao = usuarioPermissaoSelecao;
    }

    public Permissao getPermissaoSelecao() {
        return permissaoSelecao;
    }

    public void setPermissaoSelecao(Permissao permissaoSelecao) {
        this.permissaoSelecao = permissaoSelecao;
    }

    public List<Usuario> getUsuarios() {
        return usuarios = usuarioDAO.listar();
    }

    public List<Usuario_Permissao> getPermissoesUsuario() {
        return permissoesUsuario = usuarioPermissaoDAO.listar();
    }

    public List<Permissao> getPermissoes() {
        return permissoes = permissaoDAO.listar();
    }

}
  • Only one question in your fields that wants to fill the value is the user?

  • Good morning Techies. The goal is, the moment I click edit, to assign usersSelected to user.

  • I realized now that I went soft, I ended up assigning userSelecao a usuarioSelecao. rs The problem now is, the moment I click new it instantiate a new user.

1 answer

1

I realized now that I went soft, I ended up assigning userSelecao to userSelecao. I adjusted this and it worked. rs

The problem now is that when I click on the "New" button it is not instantiating a new user.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.