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>