Estou fazendo um combobox só que tive a infelicidade de que só o valor de noSelectionLabel está trazendo… se eu tiro o noSelectionLabele a lista de paises vem sem problema, mas a partir do momento que coloco d evolta ele só traz o Select a country e mais nada preenchido, alguem pode me dar uma ajuda?
<h:selectOneMenuvalue="#{userBean.user.address}"converter="#{countryList.converter}"required="true"id="srchCountry"><s:selectItemsvalue="#{countryList.allCountries}"id="country"noSelectionLabel="-- Select a country --"/><s:convertEntity/></h:selectOneMenu>
Bah brother, tu teve mais felicidade que eu. Eu não consegui nem usar este componente que da um erro de converter.
R
roanbrasil
como ta o seu codigo, provavelmente tu precisara implementar uma classe do tipo Converter
tipo classeConversora implements Converter… pois precisa para funcionar …
como ta o seu codigo?
G
giulianocosta
Cara, no fim acabei fazendo de outra maneira como não consegui encontrar a situação. Mas pelo que me lembro da documentação do seam (não estou encontrando agora) não seria necessário a implementação do converter. Estou procurando a documentação e não acho esse ponto.
R
roanbrasil
estou com akele livro projetos praticos com jboss seam… to tentando copiar o exemplo mas adequando pra minha situacao, mas o foda que o noselectionlabel se eu colocar nao traz a lista de paises, a nao ser q eu faca armengue…
G
giulianocosta
Brother, tipo assim. Talvez não seja a solucao mais limpa mas pq tu nao inclui um:
<h:selectOneMenuvalue="#{userBean.user.address}"converter="#{countryList.converter}"required="true"id="srchCountry"><s:selectItemvalueLabel="-- Select a country --"/><s:selectItemsvalue="#{countryList.allCountries}"id="country"/><s:convertEntity/></h:selectOneMenu>
R
roanbrasil
cara tu sabe como posso usar o ajax para a minha situacao? quero colocar o state desabilitado até o cara selecionar um pais … como faria isso?
<h:outputLabelvalue="Country * :"for="country"/><h:selectOneMenuvalue="#{countryList.country}"converter="#{countryList.converter}"required="true"id="srchCountry"><s:selectItemsnoSelectionLabel="-- Select a country --"/><s:selectItemsvalue="#{countryList.allCountries}"id="country"var="country"/></h:selectOneMenu><h:outputLabelvalue="State * :"for="state"/><h:selectOneMenuvalue="#{stateList.state}"converter="#{stateList.converter}"required="true"id="srchState"><s:selectItemsnoSelectionLabel="-- Select a state --"/><s:selectItemsvalue="#{stateList.allStates}"id="state"/></h:selectOneMenu>
packagecom.citespace.bean.list;importjava.io.Serializable;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;importjavax.ejb.Remove;importjavax.ejb.Stateful;importjavax.faces.convert.Converter;importjavax.persistence.EntityManager;importjavax.persistence.PersistenceContext;importjavax.persistence.Query;importorg.jboss.seam.ScopeType;importorg.jboss.seam.annotations.Create;importorg.jboss.seam.annotations.Destroy;importorg.jboss.seam.annotations.Name;importorg.jboss.seam.annotations.Scope;importcom.citespace.bean.list.interfaces.IStateList;importcom.citespace.cms.model.State;importcom.citespace.converter.StateConverter;@Stateful@Name("stateList")@Scope(ScopeType.EVENT)publicclassStateListimplementsIStateList,Serializable{/** * */privatestaticfinallongserialVersionUID=-1901355293311882031L;privateList<State>mState;privateMap<String,State>mStateMap;privateIntegercountryId;privateStatestate;@PersistenceContext(unitName="citespace-jpa")privateEntityManagerem;@Create@SuppressWarnings("unchecked")publicvoidloadState(){Queryq=em.createQuery("select s from State s Join s.country c Where c.id = :countryId");q.setParameter("countryId",countryId);mState=q.getResultList();Map<String,State>results=newTreeMap<String,State>();for(States:mState){results.put(s.getName(),s);}mStateMap=results;}publicMap<String,State>getAllStates(){returnmStateMap;}publicMap<String,State>getStatesByCountry(IntegercountryId){returnmStateMap;}publicConvertergetConverter(){returnnewStateConverter(mState);}publicIntegergetCountryId(){returncountryId;}publicvoidsetCountryId(IntegercountryId){this.countryId=countryId;}publicStategetState(){returnstate;}publicvoidsetState(Statestate){this.state=state;}@Remove@Destroypublicvoiddestroy(){}}
packagecom.citespace.bean.list;importjava.io.Serializable;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;importjavax.ejb.Remove;importjavax.ejb.Stateful;importjavax.faces.convert.Converter;importjavax.persistence.EntityManager;importjavax.persistence.PersistenceContext;importorg.jboss.seam.ScopeType;importorg.jboss.seam.annotations.Create;importorg.jboss.seam.annotations.Destroy;importorg.jboss.seam.annotations.Name;importorg.jboss.seam.annotations.Scope;importcom.citespace.bean.list.interfaces.ICountryList;importcom.citespace.cms.model.Country;importcom.citespace.converter.CountryConverter;@Stateful@Name("countryList")@Scope(ScopeType.EVENT)publicclassCountryListimplementsICountryList,Serializable{/** * */privatestaticfinallongserialVersionUID=4824589054075219364L;privateList<Country>mCountry;privateMap<String,Country>mCountryMap;privateCountrycountry=null;@PersistenceContext(unitName="citespace-jpa")privateEntityManagerem;@Create@SuppressWarnings("unchecked")publicvoidloadCountry(){mCountry=em.createQuery("select c from Country c ").getResultList();Map<String,Country>results=newTreeMap<String,Country>();for(Countryc:mCountry){results.put(c.getName(),c);}mCountryMap=results;}publicMap<String,Country>getAllCountries(){returnmCountryMap;}publicConvertergetConverter(){returnnewCountryConverter(mCountry);}@Remove@Destroypublicvoiddestroy(){}publicCountrygetCountry(){returncountry;}publicvoidsetCountry(Countrycountry){this.country=country;}}
G
giulianocosta
Tu terá que usar um a4j no change do Country. Se o cara selecionou um Country diferente de vázio tu faz um select no bean que monta o combo de Estate. E Combo Estate esta com o um disabled="#{empty teuBean.estates}".
Acho que é isso. Eu já fiz esses lazy loads de interface como SuggestionBox do richfaces. Mas este componente ainda tem uns bugzinhos, acho que ta em beta ainda.