Adicionar iduser sem mostrar lista

3 respostas
rafa120

Eu estou tentando adicionar a iduser da tabela usuario em outra tabela e está funcionando, mas consegui fazer só trazendo toda a lista de usuarios

Quero que mostre somente a id do usuario que estiver fazendo o cadastro (tenho acesso por login).

no HTML o codigo para mostrar o usuario que esta logado funciona, mas na hora de colocar no campo e enviar para o banco nao da certo…nao sei porque
Como poderia fazer isso? Vou mostrar como está funcionando através da lista e o codigo que mostra o usuario logado no meu html

no topo da pagina, uso este value e mostra o user logado
<h:outputText value="#{usuarioBean.usuario.username}"/>

<strong>usuariobean</strong>

`@ManagedBean(name=“usuarioBean”)

@SessionScoped

public class UsuarioBean implements Serializable {
private Usuario usuario;
private List<Usuario> usuarios;

private List<SelectItem> selectOneItemsUser;


public UsuarioBean() {
    usuario = new Usuario();
    SecurityContext context = SecurityContextHolder.getContext();
    if (context instanceof SecurityContext){
        Authentication authentication = context.getAuthentication();
        if (authentication instanceof Authentication){
            usuario.setUsername(((User)authentication.getPrincipal()).getUsername());
        }
    }
}

public List<SelectItem> getSelectOneItemsRol() {
    this.selectOneItemsUser = new ArrayList<SelectItem>();
    UsuarioDao usuarioDao = new UsuarioDaoImpl();
    List<Usuario> users = usuarioDao.selectItems();
    for (Usuario user : users) {
        SelectItem selectItem = new SelectItem(user.getIdUser(), user.getUsername());
        this.selectOneItemsUser.add(selectItem);
    }
    return selectOneItemsUser;
}`

html que mostra a lista e envia o user selecionado
<p:selectOneMenu id="user" value="#{changesBean.change.usuario.idUser}" required="true" requiredMessage="Campo [Owner] é obrigatório."> <f:selectItems value="#{usuarioBean.selectOneItemsRol}"/> </p:selectOneMenu>

3 Respostas

fabioqb

Após autenticar o usuário (no BD ou LDAP), você está pegando o Login. Ok.
Já tentou buscar o ID? De posse do login, terá que fazer consultar no seu BD pra obter o ID deste usuário.

rafa120

Sim, eu altero o HTML dessa forma:
<p:selectOneMenu value="#{changesBean.change.usuario.idUser}" required="true" requiredMessage="Campo [Owner] é obrigatório."> <f:selectItem itemLabel="#{usuarioBean.usuario.username}" itemValue="#{usuarioBean.usuario.idUser}"/> </p:selectOneMenu>

Ele mostra no menu a minha ID, mas na hora de passar…ele dá este erro:

Informações: Hibernate: insert into changes (change_number, comments, complexity, critical, end_date, impact, risk, short_description, start_date, status, system, id_user) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) Informações: Erro ao inserir: could not insert: [com.changes.model.Changes]

rafa120

Alguma ideia pq nao permite adicionar a iduser ? ta complicado aqui…estou tentando de tudo…

Criado 23 de fevereiro de 2016
Ultima resposta 24 de fev. de 2016
Respostas 3
Participantes 2