GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Dúvida com HtmlSelectOneMenu e UISelectItem, deixando o option com selected em JSF
Índice dos Fóruns
»
Desenvolvimento Web
Autor
Mensagem
24/03/2008 16:29:26
Assunto:
Dúvida com HtmlSelectOneMenu e UISelectItem, deixando o option com selected em JSF
SanjuanRJ
JavaGuru
Membro desde: 15/05/2007 13:33:12
Mensagens: 238
Offline
Em html puro é bem simples de fazer:
<SELECT NAME="partnumber"> <OPTION VALUE="7382" >steam turbine <OPTION VALUE="2928" >resistor array <OPTION VALUE="3993" SELECTED >widget analyzer <OPTION VALUE="9398" >fiber identifier </SELECT>
Mas em Java Server Faces não consigo fazer isso....estava tentando fazer algo mais ou menos assim
for(BeanVendedor vendedor: vendedores) { UISelectItem selectVendedor = new UISelectItem(); selectVendedor.setItemLabel(vendedor.getNome()); selectVendedor.setItemValue(vendedor.getNome()); /* if(vendedorEscolhido.getId() == vendedor.getId()) { selectVendedor.setValue("SELECTED"); } */ smVendedores.getChildren().add(selectVendedor); }
mas não funciona... ajudem-me por favor
24/03/2008 21:10:02
Assunto:
Re:Dúvida com HtmlSelectOneMenu e UISelectItem, deixando o option com selected em JSF
SanjuanRJ
JavaGuru
Membro desde: 15/05/2007 13:33:12
Mensagens: 238
Offline
Por favor pessoal. Qualquer dica é bem vinda.
25/03/2008 09:33:29
Assunto:
Re:Dúvida com HtmlSelectOneMenu e UISelectItem, deixando o option com selected em JSF
SanjuanRJ
JavaGuru
Membro desde: 15/05/2007 13:33:12
Mensagens: 238
Offline
Ninguém nunca passou por essa sitauação?
25/03/2008 11:14:54
Assunto:
Re:Dúvida com HtmlSelectOneMenu e UISelectItem, deixando o option com selected em JSF
ccalixto
JavaBaby
Membro desde: 12/05/2006 09:05:08
Mensagens: 94
Offline
Eu já passei, e achei meio trabalhoso, lá vai:
No meu caso eu jogo um objeto do tipo ParticipanteTipo no combobox.
no meu bean:
... private ParticipanteTipo tipo; //eu suprimi os gets e sets para o tipo, pois sao gets e sets simples. private List<SelectItem> selectItemsPartTipo; public List<SelectItem> getSelectItemsPartTipo() { if (selectItemsPartTipo==null) { selectItemsPartTipo = new ArrayList<SelectItem>(); ParticipanteTipo nulo = new ParticipanteTipo(); selectItemsPartTipo.add(new SelectItem(nulo, "")); List<ParticipanteTipo> todos = getParticipanteService().getParticipanteTipoDao().listAll(); for (int i=0; i<todos.size(); i++) { ParticipanteTipo pt = todos.get(i); selectItemsPartTipo.add(new SelectItem(pt, pt.getDescricao())); } } return selectItemsPartTipo; } public void setSelectItemsPartTipo(List<SelectItem> selectItemsPartTipo) { this.selectItemsPartTipo = selectItemsPartTipo; } ...
No arquivo .xhtml:
<a4j:form ajaxSubmit="true"> <div align="center"> <rich:panel styleClass="login" bodyClass="login_body"> <f:facet name="header"> <h:outputText value="Novo Cadastro"/> </f:facet> <h:outputText value="#{msgsadmpart.clubePremiosPartCampoTipo}" styleClass="bold" />:<br /> <h:selectOneMenu id="tipo" value="#{novoParticipanteBean.tipo}" style="width:206px;"> <f:selectItems value="#{novoParticipanteBean.selectItemsPartTipo}"/> <a4j:support event="onchange" action="#{novoParticipanteBean.alterarParticipanteTipo}" ajaxSingle="true" reRender="panelDadosComplementares"/> </h:selectOneMenu> <br /><br /> <a4j:commandButton value="Continuar" action="#{loginBean.login}" onclick="javascript:Richfaces.showModalPanel('mp_novoparticipante',{width:584, top:200});"></a4j:commandButton> </rich:panel> </div> </a4j:form>
Agora vem a parte diferente... Vc tem que criar um
converter
para ParticipanteTipo.
No faces-config.xml
<converter> <converter-for-class>br.com.atualinformatica.clubedepremios.model.ParticipanteTipo</converter-for-class> <converter-class>br.com.atualinformatica.sisweb.web.jsf.BaseConverter</converter-class> </converter>
Eu criei um converter genérico. Não sei se é a melhor prática, mas lá vai o código dele
import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; public class BaseConverter implements Converter { public Object getAsObject(FacesContext context, UIComponent component, String value) { Object obj = component.getAttributes().get(value); if (obj instanceof IValueObject) { IValueObject vo = (IValueObject)obj; if (vo.getId()!=null) { return obj; } else { return null; } } else { return component.getAttributes().get(value); } } public String getAsString(FacesContext context, UIComponent component, Object value) { return value.toString(); } }
Bom, tudo isso vai fazer funcionar e trazer selecionado o item, desde que o objeto
tipo
esteja != null
T+
Claudiney
Índice dos Fóruns
»
Desenvolvimento Web
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team