iai pessual,
to começando a usar JSF agora e to com problemas para carregar um combo…vcs poderiam me ajudar?
segue meu MBean:
[code]package br.com.cienci.nfe.mbean;
import br.com.cienci.nfe.dao.DaoFactory;
import br.com.cienci.nfe.modelo.Role;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
/**
*
-
@author Ciro S. Santos
*/
public class UsuarioBean {
private DaoFactory daoFactory;
private List listMenuPerson = new ArrayList();
public UsuarioBean(){
this.daoFactory = new DaoFactory();
}
public List getRoles(){
List itens = this.daoFactory.getRoleDao().listaTudo();
for(Role r: itens){
listMenuPerson.add(new SelectItem(String.valueOf(r.getId()), r.getDescricao()));
}
return listMenuPerson;
}
}
[/code]
e no jsp:
<h:selectOneMenu value="" id="role_login"
requiredMessage="Campo Permissão é obrigatório."
required="true">
<f:selectItem itemValue="" itemLabel="-- Selecione --" />
<f:selectItems value="#{usuarioBean.roles}"/>
</h:selectOneMenu>
<h:message for="role_login" errorStyle="color: darkred;"/>
ai quando executo a pagina a primeira vez, ele traz os registros duplicados do banco, e toda vez q eu abro a pagina é duplicado mais uma vez, ou seja, se eu abrir 10 vezes a pagina ele carrega 10 vezes cada informação do bd…
alguem ai pode me dar uma força?
vlw
bom, fiz o seguinte:
public List<SelectItem> getRoles(){
listMenuRoles.clear();
List<Role> itens = this.daoFactory.getRoleDao().listaTudo();
for(Role r: itens){
listMenuRoles.add(new SelectItem(String.valueOf(r.getId()), r.getDescricao()));
}
return listMenuRoles;
}
adicionei o clear()…e aparentemente funcionou…mas alguem sabe me dizer pq ele fica duplicando sempre?..e como resolver sem o clear?
outra coisa…como eu faço para pegar o id nesse combo ai e mostrar a descrição?
flw
seu codigo ta certinho…mas tova vez que carrega a pagina ele da um geRoles(); ou seja ele preenche a lista denovo e denovo e denovo, qauntas vezes for chamado o getRoles(), mas agora que vc deu o clear…ta tudo ok…outr saida seria tirar esse codigo de dentro do getRoles() e colocar em outro lugar, e deixa o getRole() somente para retorna a Lista
…
espero ter ajudado…
vlw a ajuda ai…
é verdade, como ele ta sendo chamado toda hora, ele ta recarregando…vlw
agora, com relação a pegar o id do q eu selecionar e mostrar a descrição no value…alguem manja como posso fazer?
<select id="idUnidade" name="produto.unMedida">
<option value="0">-- Selecione --</option>
<c:forEach items="${factory.unMedidas}" var="unMedida">
<option value="${unMedida}"
<c:if test="${produto.unMedida == unMedida}">
selected="true"
</c:if>
>${unMedida}</option>
</c:forEach>
</select>
ou seja, colcoar um valor no value e outro para exibir…
vlw
não entendi, achoq ue vc eja esta fazendo isso aqui:
for(Role r: itens){
listMenuRoles.add(new SelectItem(String.valueOf(r.getId()), r.getDescricao()));
}
mostra a descricao, mas seleciona o ID…
ou eu entendi errado?
aaaaaaaaaaah ta…isso msm, entendi…
era isso msm, problema resolvido com combo…
vlw cara…
aproveitando o tópico…estou com uma outra duvida…creio q seja uma pergunta boba…mas ai vai…
como faço para pegar o valor de um <h:inputHidden> em uma função javascript e mostrar em um alert…não consegui fazer isso…tentei fazer o seguinte:
<h:inputHidden id="idResultado" value="#{usuarioBean.resultado}"/>
<script language="javascript">
function showRes(){
alert(document.getElementsByName("idResultado").value);
}
</script>
<a4j:commandButton action="#{usuarioBean.adicionarUsuario}" onclick="showRes();" value="Cadastrar" />
mas isso ai num resolveu…alguem ai podia me dar uma força?
vlw