colored
Setembro 9, 2009, 10:14am
#1
Bom tenho 1 campo aqui no meu formulario que eh um CheckBox, blz ele grava certinho e qdo traz tb ta tudo blz…
Porem eu precisava gravar Sim e Não ao inves de True e False.
Li 1 pouco e vi que teria q criar um converter mas eu n consegui assimilar mto bem isso, será q alguem pode me ajudar…
Mto Obrigado
não dá pra vc colocar “Sim” no value desse checkbox??
colored
Setembro 9, 2009, 10:25am
#3
HUm… Nao Sei…
Mas eh 1 SelectBooleanCheckBox…
Mas eh q a propriedade eh Boolean…
Mas em Tela eu keria mostrar Sim e Não… Entende?
Olá tudo bem?
Tem três maneiras de você resolver isso:
1º Maniera:
boolean check;
String checkString;
public void setCheck(boolean check) {
checkString = check ? "Sim" : "Não";
this.check = check;
}
2º Maneira
Ao salvar fazer a mesma verificação acima
String checkString = check ? "Sim" : "Não";
3º Maneira
O conversor que você disse, porém eu não sei muito bem fazer conversor!
Abraços, espero que te ajude!
colored
Setembro 9, 2009, 10:30am
#5
Então era bem q vc num sabe q eu preciso kkkkk…
Por que eh bom pq um conversor desse vc smp usa neh…
Mas valeo a ideia thanks :]
Mas Preciso desse Conversor
Oi,
Acredito que neste caso não seja necessário um conversor.
O label você deixa como Sim/Não e o value como true ou false.
<h:selectOneRadio value="#{managedBean.valor}">
<f:selectItem itemValue="true" itemLabel="Sim" />
<f:selectItem itemValue="false" itemLabel="Não" />
</h:selectOneRadio>
Fazendo desta maneira, irá aparecer na tela o Sim e o Não, mas o valor que será setado no seu
managed bean será true quando o “Sim” for escolhido e false quando o “Não” for escolhido
Qualquer coisa posta aí!
Abraço
Creio que seja algo mais ou menos assim:
public class BooleanToStringConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if(value == null) return Boolean.FALSE;
return "Sim".equalsIgnoreCase(value) || "True".equalsIgnoreCase(value);
}
public String getAsString(FacesContext context, UIComponent component, Object object) {
if(value == null) return "Não";
if(object instanceof Boolean) return ((Boolean)object).booleanValue() ? "Sim" : "Não";
return object.toString();
}
}
Depois é só declara-lo no faces-config e usa-lo nas suas paginas!
colored
Setembro 9, 2009, 11:49am
#8
Estranho eu colokei um System.out nos metodos por que nao estão passando…
Por que num teve nenhuma mudança…
eh assim mesmo q mapeia o conversor???
<converter>
<converter-id>MyConverter</converter-id>
<converter-class>Converter.MyConverter</converter-class>
</converter>
SO pra Constar Minha Classe chama msm MyConverter… q eu ja tinha um mapeado ai soh substitui os metodos…
Uma Coisa eh q eu estou utilizando akele SelectBooleanCheckBox, e nele parece q n ta funcionando em 1 input por exemplo pelo menos aparece q funcionou, por q?
Realmente, conversores não funcionam com selectBooleanCheckbox:
http://www.i-coding.de/www/en/jsf/bug/selectbooleancheckbox-converter.html
Use a solução do link, ou uma das fornecidas anteriormente!