users@glassfish.java.net

RE: Custom Boolean Converted worked fine with GF3.0.1+JSF1.2 and now it doesn't with GF3.1+JSF2

From: Martin Gainty <mgainty_at_hotmail.com>
Date: Fri, 29 Apr 2011 22:33:47 -0400

can you do a simple test for 2.0 environment
<h:selectBooleanCheckbox value="true"/>
<h:selectBooleanCheckbox value="false"/>

next populate the bean.acessar into value attribute with "true"
populate the bean.accessar into value attribute with "false"
  
thanks,
Martin Gainty
______________________________________________
Jogi és Bizalmassági kinyilatkoztatás/Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 Ez az
üzenet bizalmas. Ha nem ön az akinek szánva volt, akkor kérjük, hogy
jelentse azt nekünk vissza. Semmiféle továbbítása vagy másolatának
készítése nem megengedett. Ez az üzenet csak ismeret cserét szolgál és
semmiféle jogi alkalmazhatósága sincs. Mivel az electronikus üzenetek
könnyen megváltoztathatóak, ezért minket semmi felelöség nem terhelhet
ezen üzenet tartalma miatt.

Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut ętre privilégié. Si vous n'ętes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert ŕ l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement ętre sujets ŕ la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.




> To: users_at_glassfish.java.net
> Subject: Custom Boolean Converted worked fine with GF3.0.1+JSF1.2 and now it doesn't with GF3.1+JSF2
> From: forums_at_java.net
> Date: Fri, 29 Apr 2011 14:34:25 -0500
>
> Hi,
>
> Environment: NetBeans 7.0 + GlassFish 3.1 + JSF 2.0 + CDI/Weld 1.1.0.
>
> Previous environment that worked: NetBeans 6.9.1 + GlassFish 3.0.1 + JSF 1.2
> + CDI/Weld 1.0.0.
>
> I have used selectBooleanCheckbox with a custom converter
> "snBooleanConverter", where N = false and S = true, getting data from a
> legacy database that save the field "acessar" using a CHAR(1) datatype. This
> is a sample of the component:
>
> [code]
>
> <h:selectBooleanCheckbox id="acessar" value="#{bean.acessar}"><f:converter
> converterId="snBooleanConverter"/></h:selectBooleanCheckbox>
>
> [/code]
>
> The converter is below:
>
> [code]
>
> package SubMacroWeb.convert;
>
> import javax.faces.component.UIComponent;
>
> import javax.faces.context.FacesContext;
>
> import javax.faces.convert.Converter;
>
> import javax.faces.convert.FacesConverter;
>
> @FacesConverter(value="snBooleanConverter")
>
> public class SNBooleanConverter implements Converter {
>
> public SNBooleanConverter() {}
>
> @Override
>
> public Object getAsObject(FacesContext facesContext, UIComponent
> uiComponent, String string) {
>
> if (string == null) {
>
> return "N";
>
> }
>
> try {
>
> if (!Boolean.parseBoolean(string))
>
> return "N";
>
> else
>
> return "S";
>
> } catch (Exception e) {
>
> e.printStackTrace();
>
> return null;
>
> }
>
> }
>
> @Override
>
> public String getAsString(FacesContext facesContext, UIComponent
> uIComponent, Object object) {
>
> if (object == null) {
>
> return "N";
>
> }
>
> try {
>
> Boolean ret = object.toString().equals("S");
>
> return ret.toString();
>
> } catch (Exception e) {
>
> throw new IllegalArgumentException("object:" + object + " of
> type:" + object.getClass().getName() + "; expected type: Boolean");
>
> }
>
> }
>
> }
>
> [/code]
>
> The faces-config.xhtml has this config:
>
> [code]
>
> <converter>
>
> <converter-id>snBooleanConverter</converter-id>
>
>
> <converter-class>SubMacroWeb.convert.SNBooleanConverter</converter-class>
>
> </converter>
>
> [/code]
>
> Before using JSF1.2 the getAsString method received an object "String", with
> value S or N.
>
> Now using JSF2.0 the getAsString method receives an object "Boolean", and
> always is false. I think the JSF2.0 doesn't understand the values S or N, and
> always returns false.
>
>
> --
>
> [Message sent by forum member 'edilmar']
>
> View Post: http://forums.java.net/node/796983
>
>