You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Kostas Karadamoglou <ka...@yahoo.gr> on 2005/03/16 11:05:13 UTC

Problem with selectItems tag and its binded method

Hello I have a problem with the selectItems tag
Bellow I have the method that brings the value attribute of the tag:

    public List getCategories() {
        ArrayList retValue = new ArrayList();
        retValue.add(new SelectItem("","Choose a category..."));
        for(Iterator iter=this.eventRegistry.getCategories().iterator(); 
iter.hasNext();){
            Category category=(Category)iter.next();
            retValue.add(new SelectItem(category,category.getTitle()));
        }
        return retValue;
    }

When I run the web application I get the following exception:

javax.faces.FacesException: There is no registered converter for class 
essex.cc403.hbeans.Category

Do I really  need to write a converter for the Category? Can I avoid it?
Can you axplain me what I have to do because I am not familiar with JSF

Thank you in advanec, kostas

Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
No problem.  I know it can really be a pain getting started.

Don't be at all afraid to dive into the source with the debugger when
you're running into troubles.  It really helps to improve your
understanding of the code, I think.


On Wed, 16 Mar 2005 23:19:08 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> Nice!!!
> know I got it !
> I assumed that you used <f:converter> not as an attribute
> 
> Thank you very much for you time!!!
> I really appreciate it
> 
> Heath Borders wrote:
> 
> >Your converter is a managed bean.
> >
> >It would be:
> >
> >public class MyConverter implements Converter { ... }
> >
> >Then in your faces-config.xml :
> >
> ><managed-bean>
> ><managed-bean-name>myConverter</managed-bean-name>
> ><managed-bean-class>com.foo.MyConverter</managed-bean-class>
> ><managed-bean-scope>session</managed-bean-scope>
> ></managed-bean>
> >
> >Then, in your JSP:
> >
> ><h:selectOneMenu value="#{myBean.myProperty}" converter="#{myConverter}">
> ><f:selectItems value="#{myBean.mySelectItems}" />
> ></h:selectOneMenu>
> >
> >
> >On Wed, 16 Mar 2005 23:08:21 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>How does the getAsString method that you gave me have access to the
> >>_beanBaseMap?
> >>Which is in the session scope the converter or the map?
> >>If the converter has session scope, how do you declare it in the config.xml?
> >>If the map is in the session scope how do you access it?
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>The getAsString method takes 3 arguments, the FacesContex, the
> >>>UIComponent doing the conversion, and the Object value.  It is
> >>>perfectly fine for a Converter to only work with certain types of
> >>>Objects.
> >>>
> >>>Let's say that all your beans extend a common base class BeanBase
> >>>which has a property id.
> >>>
> >>>Then, your getAsString method might look like this:
> >>>
> >>>public String getAsString(FacesContext ctx, UIComponent comp, Object value) {
> >>>BeanBase myBean = (BeanBase) value;
> >>>// assuming this is a member variable that is a Map
> >>>_beanBaseMap.put(myBean.getId(), myBean);
> >>>
> >>>return myBean.getId();
> >>>}
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 22:39:54 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Very good idea!
> >>>>So I have understood from the converter's getAsString and getAsObject
> >>>>methods you call the getAsString and getAsObject respectively
> >>>>of the session scoped bean. But Is it possible to do this call? I mean
> >>>>does the converter has access to the session scope bean?
> >>>>How can I do it?
> >>>>
> >>>>Sorry for my questions but I am quite new to JSF.
> >>>>
> >>>>Heath Borders wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>We have a session-scoped managed bean that implements converter.
> >>>>>Whenever one of our objects goes into the getAsString method, we put
> >>>>>the object in a map keyed by its id.  Then, when the getAsObject
> >>>>>method is called, we remove the object from the map and return it.
> >>>>>
> >>>>>
> >>>>>On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
> >>>>><ka...@yahoo.gr> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Sorry about my previous email, I didn't read it correctly!
> >>>>>>
> >>>>>>Another question if I don't bother you
> >>>>>>
> >>>>>>As far  as I understood  the methods getAsString and getAsObject
> >>>>>>serialize and deserialize an object isnt true?
> >>>>>>If yes then we send the object to the client and we don't keep it in the
> >>>>>>server. In your previous reply you send that
> >>>>>>MyFaces keeps the object in the memory but I cannot understand how it is
> >>>>>>done OR How I have to do it.
> >>>>>>Can you explain me this confusion that I have?
> >>>>>>
> >>>>>>Thank your in advance, Kostas
> >>>>>>
> >>>>>>Heath Borders wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>>>>>referenced object by the identifier.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>We did exactly this.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
> >>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>In you previous message you said:
> >>>>>>>>
> >>>>>>>>We elected to keep
> >>>>>>>>everything in memory since we don't have that many concurrent users.
> >>>>>>>>
> >>>>>>>>I didn't understand it can you explain it?
> >>>>>>>>
> >>>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>>>>>referenced object by the identifier.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>Heath Borders wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>Depending on the size of your object graph, you might run into
> >>>>>>>>>performance problems doing that.  It really depends on your situation,
> >>>>>>>>>but that's something you could definitely try.  We elected to keep
> >>>>>>>>>everything in memory since we don't have that many concurrent users.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
> >>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>and what if my bean that I want to convert includes another nested objects?
> >>>>>>>>>>
> >>>>>>>>>>Is it a good idea to use libraries that serialize and deserialize object
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>from and to xml?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>Heath Borders wrote:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>getAsString converts the Object to a String and getAsObject converts
> >>>>>>>>>>>the String back to an Object.
> >>>>>>>>>>>
> >>>>>>>>>>>The behaviour should be like this:
> >>>>>>>>>>>
> >>>>>>>>>>>MyBean foo = // get a bean from somewhere
> >>>>>>>>>>>Converter converter = // get a converter that converts MyBeans.
> >>>>>>>>>>>String fooString = converter.getAsString(foo);
> >>>>>>>>>>>MyBean bar = converter.getAsObject(fooString);
> >>>>>>>>>>>
> >>>>>>>>>>>foo.equals(bar);  // should return true.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>Basically, the converter needs to convert an object to a String that
> >>>>>>>>>>>can be used later to recreate that Object.  You can do this many
> >>>>>>>>>>>different ways.  We have a unique id for every type of object and
> >>>>>>>>>>>store all objects in session.  Our converter just returns that unique
> >>>>>>>>>>>id and pulls the objects from session using a Map.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> >>>>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>>Hi again thank you for your reply,
> >>>>>>>>>>>>I am new to JSF so I need some information on how to create converters.
> >>>>>>>>>>>>Do you know any site one the internet that has such information?
> >>>>>>>>>>>>
> >>>>>>>>>>>>I have already looked on the internet but I only foound converters for
> >>>>>>>>>>>>String not for
> >>>>>>>>>>>>other classes.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Can you give directions on how to implement the getAsString and
> >>>>>>>>>>>>getAsObject ?
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>Heath Borders wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>Yes, you must write a converter for Category.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
> >>>>>>>>>>>>>be of a type that is assignment-compatible with the property you've
> >>>>>>>>>>>>>bound to your component.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>>>>>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>Hello I have a problem with the selectItems tag
> >>>>>>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>public List getCategories() {
> >>>>>>>>>>>>>> ArrayList retValue = new ArrayList();
> >>>>>>>>>>>>>> retValue.add(new SelectItem("","Choose a category..."));
> >>>>>>>>>>>>>> for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>>>>>>>>>>>iter.hasNext();){
> >>>>>>>>>>>>>>     Category category=(Category)iter.next();
> >>>>>>>>>>>>>>     retValue.add(new SelectItem(category,category.getTitle()));
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>> return retValue;
> >>>>>>>>>>>>>>}
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>When I run the web application I get the following exception:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
> >>>>>>>>>>>>>>essex.cc403.hbeans.Category
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>>>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>Thank you in advanec, kostas
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
Nice!!!
know I got it !
I assumed that you used <f:converter> not as an attribute

Thank you very much for you time!!!
I really appreciate it

Heath Borders wrote:

>Your converter is a managed bean.
>
>It would be:
>
>public class MyConverter implements Converter { ... }
>
>Then in your faces-config.xml :
>
><managed-bean>
><managed-bean-name>myConverter</managed-bean-name>
><managed-bean-class>com.foo.MyConverter</managed-bean-class>
><managed-bean-scope>session</managed-bean-scope>
></managed-bean>
>
>Then, in your JSP:
>
><h:selectOneMenu value="#{myBean.myProperty}" converter="#{myConverter}">
><f:selectItems value="#{myBean.mySelectItems}" />
></h:selectOneMenu>
>
>
>On Wed, 16 Mar 2005 23:08:21 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>How does the getAsString method that you gave me have access to the
>>_beanBaseMap?
>>Which is in the session scope the converter or the map?
>>If the converter has session scope, how do you declare it in the config.xml?
>>If the map is in the session scope how do you access it?
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>The getAsString method takes 3 arguments, the FacesContex, the
>>>UIComponent doing the conversion, and the Object value.  It is
>>>perfectly fine for a Converter to only work with certain types of
>>>Objects.
>>>
>>>Let's say that all your beans extend a common base class BeanBase
>>>which has a property id.
>>>
>>>Then, your getAsString method might look like this:
>>>
>>>public String getAsString(FacesContext ctx, UIComponent comp, Object value) {
>>>BeanBase myBean = (BeanBase) value;
>>>// assuming this is a member variable that is a Map
>>>_beanBaseMap.put(myBean.getId(), myBean);
>>>
>>>return myBean.getId();
>>>}
>>>
>>>
>>>On Wed, 16 Mar 2005 22:39:54 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>Very good idea!
>>>>So I have understood from the converter's getAsString and getAsObject
>>>>methods you call the getAsString and getAsObject respectively
>>>>of the session scoped bean. But Is it possible to do this call? I mean
>>>>does the converter has access to the session scope bean?
>>>>How can I do it?
>>>>
>>>>Sorry for my questions but I am quite new to JSF.
>>>>
>>>>Heath Borders wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>We have a session-scoped managed bean that implements converter.
>>>>>Whenever one of our objects goes into the getAsString method, we put
>>>>>the object in a map keyed by its id.  Then, when the getAsObject
>>>>>method is called, we remove the object from the map and return it.
>>>>>
>>>>>
>>>>>On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
>>>>><ka...@yahoo.gr> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>Sorry about my previous email, I didn't read it correctly!
>>>>>>
>>>>>>Another question if I don't bother you
>>>>>>
>>>>>>As far  as I understood  the methods getAsString and getAsObject
>>>>>>serialize and deserialize an object isnt true?
>>>>>>If yes then we send the object to the client and we don't keep it in the
>>>>>>server. In your previous reply you send that
>>>>>>MyFaces keeps the object in the memory but I cannot understand how it is
>>>>>>done OR How I have to do it.
>>>>>>Can you explain me this confusion that I have?
>>>>>>
>>>>>>Thank your in advance, Kostas
>>>>>>
>>>>>>Heath Borders wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>>>>>referenced object by the identifier.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>We did exactly this.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>In you previous message you said:
>>>>>>>>
>>>>>>>>We elected to keep
>>>>>>>>everything in memory since we don't have that many concurrent users.
>>>>>>>>
>>>>>>>>I didn't understand it can you explain it?
>>>>>>>>
>>>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>>>>>referenced object by the identifier.
>>>>>>>>
>>>>>>>>
>>>>>>>>Heath Borders wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>>>Depending on the size of your object graph, you might run into
>>>>>>>>>performance problems doing that.  It really depends on your situation,
>>>>>>>>>but that's something you could definitely try.  We elected to keep
>>>>>>>>>everything in memory since we don't have that many concurrent users.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>>>and what if my bean that I want to convert includes another nested objects?
>>>>>>>>>>
>>>>>>>>>>Is it a good idea to use libraries that serialize and deserialize object
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>>from and to xml?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>>>Heath Borders wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>>>getAsString converts the Object to a String and getAsObject converts
>>>>>>>>>>>the String back to an Object.
>>>>>>>>>>>
>>>>>>>>>>>The behaviour should be like this:
>>>>>>>>>>>
>>>>>>>>>>>MyBean foo = // get a bean from somewhere
>>>>>>>>>>>Converter converter = // get a converter that converts MyBeans.
>>>>>>>>>>>String fooString = converter.getAsString(foo);
>>>>>>>>>>>MyBean bar = converter.getAsObject(fooString);
>>>>>>>>>>>
>>>>>>>>>>>foo.equals(bar);  // should return true.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>Basically, the converter needs to convert an object to a String that
>>>>>>>>>>>can be used later to recreate that Object.  You can do this many
>>>>>>>>>>>different ways.  We have a unique id for every type of object and
>>>>>>>>>>>store all objects in session.  Our converter just returns that unique
>>>>>>>>>>>id and pulls the objects from session using a Map.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
>>>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                      
>>>>>>>>>>>
>>>>>>>>>>>>Hi again thank you for your reply,
>>>>>>>>>>>>I am new to JSF so I need some information on how to create converters.
>>>>>>>>>>>>Do you know any site one the internet that has such information?
>>>>>>>>>>>>
>>>>>>>>>>>>I have already looked on the internet but I only foound converters for
>>>>>>>>>>>>String not for
>>>>>>>>>>>>other classes.
>>>>>>>>>>>>
>>>>>>>>>>>>Can you give directions on how to implement the getAsString and
>>>>>>>>>>>>getAsObject ?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>Heath Borders wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                        
>>>>>>>>>>>>
>>>>>>>>>>>>>Yes, you must write a converter for Category.
>>>>>>>>>>>>>
>>>>>>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
>>>>>>>>>>>>>be of a type that is assignment-compatible with the property you've
>>>>>>>>>>>>>bound to your component.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>>>>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>                          
>>>>>>>>>>>>>
>>>>>>>>>>>>>>Hello I have a problem with the selectItems tag
>>>>>>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>public List getCategories() {
>>>>>>>>>>>>>> ArrayList retValue = new ArrayList();
>>>>>>>>>>>>>> retValue.add(new SelectItem("","Choose a category..."));
>>>>>>>>>>>>>> for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>>>>>>>>>>>iter.hasNext();){
>>>>>>>>>>>>>>     Category category=(Category)iter.next();
>>>>>>>>>>>>>>     retValue.add(new SelectItem(category,category.getTitle()));
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>> return retValue;
>>>>>>>>>>>>>>}
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>When I run the web application I get the following exception:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
>>>>>>>>>>>>>>essex.cc403.hbeans.Category
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>>>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Thank you in advanec, kostas
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>                            
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>                          
>>>>>>>>>>>>>
>>>>>>>>>>>>                        
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                      
>>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
Your converter is a managed bean.

It would be:

public class MyConverter implements Converter { ... }

Then in your faces-config.xml :

<managed-bean>
<managed-bean-name>myConverter</managed-bean-name>
<managed-bean-class>com.foo.MyConverter</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Then, in your JSP:

<h:selectOneMenu value="#{myBean.myProperty}" converter="#{myConverter}">
<f:selectItems value="#{myBean.mySelectItems}" />
</h:selectOneMenu>


On Wed, 16 Mar 2005 23:08:21 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> How does the getAsString method that you gave me have access to the
> _beanBaseMap?
> Which is in the session scope the converter or the map?
> If the converter has session scope, how do you declare it in the config.xml?
> If the map is in the session scope how do you access it?
> 
> Heath Borders wrote:
> 
> >The getAsString method takes 3 arguments, the FacesContex, the
> >UIComponent doing the conversion, and the Object value.  It is
> >perfectly fine for a Converter to only work with certain types of
> >Objects.
> >
> >Let's say that all your beans extend a common base class BeanBase
> >which has a property id.
> >
> >Then, your getAsString method might look like this:
> >
> >public String getAsString(FacesContext ctx, UIComponent comp, Object value) {
> >BeanBase myBean = (BeanBase) value;
> >// assuming this is a member variable that is a Map
> >_beanBaseMap.put(myBean.getId(), myBean);
> >
> >return myBean.getId();
> >}
> >
> >
> >On Wed, 16 Mar 2005 22:39:54 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>Very good idea!
> >>So I have understood from the converter's getAsString and getAsObject
> >>methods you call the getAsString and getAsObject respectively
> >>of the session scoped bean. But Is it possible to do this call? I mean
> >>does the converter has access to the session scope bean?
> >>How can I do it?
> >>
> >>Sorry for my questions but I am quite new to JSF.
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>We have a session-scoped managed bean that implements converter.
> >>>Whenever one of our objects goes into the getAsString method, we put
> >>>the object in a map keyed by its id.  Then, when the getAsObject
> >>>method is called, we remove the object from the map and return it.
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Sorry about my previous email, I didn't read it correctly!
> >>>>
> >>>>Another question if I don't bother you
> >>>>
> >>>>As far  as I understood  the methods getAsString and getAsObject
> >>>>serialize and deserialize an object isnt true?
> >>>>If yes then we send the object to the client and we don't keep it in the
> >>>>server. In your previous reply you send that
> >>>>MyFaces keeps the object in the memory but I cannot understand how it is
> >>>>done OR How I have to do it.
> >>>>Can you explain me this confusion that I have?
> >>>>
> >>>>Thank your in advance, Kostas
> >>>>
> >>>>Heath Borders wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>>>referenced object by the identifier.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>We did exactly this.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
> >>>>><ka...@yahoo.gr> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>In you previous message you said:
> >>>>>>
> >>>>>>We elected to keep
> >>>>>>everything in memory since we don't have that many concurrent users.
> >>>>>>
> >>>>>>I didn't understand it can you explain it?
> >>>>>>
> >>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>>>referenced object by the identifier.
> >>>>>>
> >>>>>>
> >>>>>>Heath Borders wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>Depending on the size of your object graph, you might run into
> >>>>>>>performance problems doing that.  It really depends on your situation,
> >>>>>>>but that's something you could definitely try.  We elected to keep
> >>>>>>>everything in memory since we don't have that many concurrent users.
> >>>>>>>
> >>>>>>>
> >>>>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
> >>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>and what if my bean that I want to convert includes another nested objects?
> >>>>>>>>
> >>>>>>>>Is it a good idea to use libraries that serialize and deserialize object
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>from and to xml?
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Heath Borders wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>getAsString converts the Object to a String and getAsObject converts
> >>>>>>>>>the String back to an Object.
> >>>>>>>>>
> >>>>>>>>>The behaviour should be like this:
> >>>>>>>>>
> >>>>>>>>>MyBean foo = // get a bean from somewhere
> >>>>>>>>>Converter converter = // get a converter that converts MyBeans.
> >>>>>>>>>String fooString = converter.getAsString(foo);
> >>>>>>>>>MyBean bar = converter.getAsObject(fooString);
> >>>>>>>>>
> >>>>>>>>>foo.equals(bar);  // should return true.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>Basically, the converter needs to convert an object to a String that
> >>>>>>>>>can be used later to recreate that Object.  You can do this many
> >>>>>>>>>different ways.  We have a unique id for every type of object and
> >>>>>>>>>store all objects in session.  Our converter just returns that unique
> >>>>>>>>>id and pulls the objects from session using a Map.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> >>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>Hi again thank you for your reply,
> >>>>>>>>>>I am new to JSF so I need some information on how to create converters.
> >>>>>>>>>>Do you know any site one the internet that has such information?
> >>>>>>>>>>
> >>>>>>>>>>I have already looked on the internet but I only foound converters for
> >>>>>>>>>>String not for
> >>>>>>>>>>other classes.
> >>>>>>>>>>
> >>>>>>>>>>Can you give directions on how to implement the getAsString and
> >>>>>>>>>>getAsObject ?
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>Heath Borders wrote:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>Yes, you must write a converter for Category.
> >>>>>>>>>>>
> >>>>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
> >>>>>>>>>>>be of a type that is assignment-compatible with the property you've
> >>>>>>>>>>>bound to your component.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>>>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>>Hello I have a problem with the selectItems tag
> >>>>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>>>>>>>>>
> >>>>>>>>>>>>public List getCategories() {
> >>>>>>>>>>>>  ArrayList retValue = new ArrayList();
> >>>>>>>>>>>>  retValue.add(new SelectItem("","Choose a category..."));
> >>>>>>>>>>>>  for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>>>>>>>>>iter.hasNext();){
> >>>>>>>>>>>>      Category category=(Category)iter.next();
> >>>>>>>>>>>>      retValue.add(new SelectItem(category,category.getTitle()));
> >>>>>>>>>>>>  }
> >>>>>>>>>>>>  return retValue;
> >>>>>>>>>>>>}
> >>>>>>>>>>>>
> >>>>>>>>>>>>When I run the web application I get the following exception:
> >>>>>>>>>>>>
> >>>>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
> >>>>>>>>>>>>essex.cc403.hbeans.Category
> >>>>>>>>>>>>
> >>>>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>>>>>>>>>
> >>>>>>>>>>>>Thank you in advanec, kostas
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
How does the getAsString method that you gave me have access to the 
_beanBaseMap?
Which is in the session scope the converter or the map?
If the converter has session scope, how do you declare it in the config.xml?
If the map is in the session scope how do you access it?

Heath Borders wrote:

>The getAsString method takes 3 arguments, the FacesContex, the
>UIComponent doing the conversion, and the Object value.  It is
>perfectly fine for a Converter to only work with certain types of
>Objects.
>
>Let's say that all your beans extend a common base class BeanBase
>which has a property id.
>
>Then, your getAsString method might look like this:
>
>public String getAsString(FacesContext ctx, UIComponent comp, Object value) {
>BeanBase myBean = (BeanBase) value;
>// assuming this is a member variable that is a Map
>_beanBaseMap.put(myBean.getId(), myBean);
>
>return myBean.getId();
>}
>
>
>On Wed, 16 Mar 2005 22:39:54 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>Very good idea!
>>So I have understood from the converter's getAsString and getAsObject
>>methods you call the getAsString and getAsObject respectively
>>of the session scoped bean. But Is it possible to do this call? I mean
>>does the converter has access to the session scope bean?
>>How can I do it?
>>
>>Sorry for my questions but I am quite new to JSF.
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>We have a session-scoped managed bean that implements converter.
>>>Whenever one of our objects goes into the getAsString method, we put
>>>the object in a map keyed by its id.  Then, when the getAsObject
>>>method is called, we remove the object from the map and return it.
>>>
>>>
>>>On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>Sorry about my previous email, I didn't read it correctly!
>>>>
>>>>Another question if I don't bother you
>>>>
>>>>As far  as I understood  the methods getAsString and getAsObject
>>>>serialize and deserialize an object isnt true?
>>>>If yes then we send the object to the client and we don't keep it in the
>>>>server. In your previous reply you send that
>>>>MyFaces keeps the object in the memory but I cannot understand how it is
>>>>done OR How I have to do it.
>>>>Can you explain me this confusion that I have?
>>>>
>>>>Thank your in advance, Kostas
>>>>
>>>>Heath Borders wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>>>referenced object by the identifier.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>We did exactly this.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
>>>>><ka...@yahoo.gr> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>In you previous message you said:
>>>>>>
>>>>>>We elected to keep
>>>>>>everything in memory since we don't have that many concurrent users.
>>>>>>
>>>>>>I didn't understand it can you explain it?
>>>>>>
>>>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>>>referenced object by the identifier.
>>>>>>
>>>>>>
>>>>>>Heath Borders wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>Depending on the size of your object graph, you might run into
>>>>>>>performance problems doing that.  It really depends on your situation,
>>>>>>>but that's something you could definitely try.  We elected to keep
>>>>>>>everything in memory since we don't have that many concurrent users.
>>>>>>>
>>>>>>>
>>>>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>and what if my bean that I want to convert includes another nested objects?
>>>>>>>>
>>>>>>>>Is it a good idea to use libraries that serialize and deserialize object
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>>from and to xml?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>Heath Borders wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>>>getAsString converts the Object to a String and getAsObject converts
>>>>>>>>>the String back to an Object.
>>>>>>>>>
>>>>>>>>>The behaviour should be like this:
>>>>>>>>>
>>>>>>>>>MyBean foo = // get a bean from somewhere
>>>>>>>>>Converter converter = // get a converter that converts MyBeans.
>>>>>>>>>String fooString = converter.getAsString(foo);
>>>>>>>>>MyBean bar = converter.getAsObject(fooString);
>>>>>>>>>
>>>>>>>>>foo.equals(bar);  // should return true.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>Basically, the converter needs to convert an object to a String that
>>>>>>>>>can be used later to recreate that Object.  You can do this many
>>>>>>>>>different ways.  We have a unique id for every type of object and
>>>>>>>>>store all objects in session.  Our converter just returns that unique
>>>>>>>>>id and pulls the objects from session using a Map.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>>>Hi again thank you for your reply,
>>>>>>>>>>I am new to JSF so I need some information on how to create converters.
>>>>>>>>>>Do you know any site one the internet that has such information?
>>>>>>>>>>
>>>>>>>>>>I have already looked on the internet but I only foound converters for
>>>>>>>>>>String not for
>>>>>>>>>>other classes.
>>>>>>>>>>
>>>>>>>>>>Can you give directions on how to implement the getAsString and
>>>>>>>>>>getAsObject ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>Heath Borders wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>>>Yes, you must write a converter for Category.
>>>>>>>>>>>
>>>>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
>>>>>>>>>>>be of a type that is assignment-compatible with the property you've
>>>>>>>>>>>bound to your component.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                      
>>>>>>>>>>>
>>>>>>>>>>>>Hello I have a problem with the selectItems tag
>>>>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>>>>>>>>>
>>>>>>>>>>>>public List getCategories() {
>>>>>>>>>>>>  ArrayList retValue = new ArrayList();
>>>>>>>>>>>>  retValue.add(new SelectItem("","Choose a category..."));
>>>>>>>>>>>>  for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>>>>>>>>>iter.hasNext();){
>>>>>>>>>>>>      Category category=(Category)iter.next();
>>>>>>>>>>>>      retValue.add(new SelectItem(category,category.getTitle()));
>>>>>>>>>>>>  }
>>>>>>>>>>>>  return retValue;
>>>>>>>>>>>>}
>>>>>>>>>>>>
>>>>>>>>>>>>When I run the web application I get the following exception:
>>>>>>>>>>>>
>>>>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
>>>>>>>>>>>>essex.cc403.hbeans.Category
>>>>>>>>>>>>
>>>>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>>>>>>>>>
>>>>>>>>>>>>Thank you in advanec, kostas
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                        
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                      
>>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
The getAsString method takes 3 arguments, the FacesContex, the
UIComponent doing the conversion, and the Object value.  It is
perfectly fine for a Converter to only work with certain types of
Objects.

Let's say that all your beans extend a common base class BeanBase
which has a property id.

Then, your getAsString method might look like this:

public String getAsString(FacesContext ctx, UIComponent comp, Object value) {
BeanBase myBean = (BeanBase) value;
// assuming this is a member variable that is a Map
_beanBaseMap.put(myBean.getId(), myBean);

return myBean.getId();
}


On Wed, 16 Mar 2005 22:39:54 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> Very good idea!
> So I have understood from the converter's getAsString and getAsObject
> methods you call the getAsString and getAsObject respectively
> of the session scoped bean. But Is it possible to do this call? I mean
> does the converter has access to the session scope bean?
> How can I do it?
> 
> Sorry for my questions but I am quite new to JSF.
> 
> Heath Borders wrote:
> 
> >We have a session-scoped managed bean that implements converter.
> >Whenever one of our objects goes into the getAsString method, we put
> >the object in a map keyed by its id.  Then, when the getAsObject
> >method is called, we remove the object from the map and return it.
> >
> >
> >On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>Sorry about my previous email, I didn't read it correctly!
> >>
> >>Another question if I don't bother you
> >>
> >>As far  as I understood  the methods getAsString and getAsObject
> >>serialize and deserialize an object isnt true?
> >>If yes then we send the object to the client and we don't keep it in the
> >>server. In your previous reply you send that
> >>MyFaces keeps the object in the memory but I cannot understand how it is
> >>done OR How I have to do it.
> >>Can you explain me this confusion that I have?
> >>
> >>Thank your in advance, Kostas
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>referenced object by the identifier.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>We did exactly this.
> >>>
> >>>
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>In you previous message you said:
> >>>>
> >>>>We elected to keep
> >>>>everything in memory since we don't have that many concurrent users.
> >>>>
> >>>>I didn't understand it can you explain it?
> >>>>
> >>>>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>>>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>>>referenced object by the identifier.
> >>>>
> >>>>
> >>>>Heath Borders wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Depending on the size of your object graph, you might run into
> >>>>>performance problems doing that.  It really depends on your situation,
> >>>>>but that's something you could definitely try.  We elected to keep
> >>>>>everything in memory since we don't have that many concurrent users.
> >>>>>
> >>>>>
> >>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
> >>>>><ka...@yahoo.gr> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>and what if my bean that I want to convert includes another nested objects?
> >>>>>>
> >>>>>>Is it a good idea to use libraries that serialize and deserialize object
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>from and to xml?
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Heath Borders wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>getAsString converts the Object to a String and getAsObject converts
> >>>>>>>the String back to an Object.
> >>>>>>>
> >>>>>>>The behaviour should be like this:
> >>>>>>>
> >>>>>>>MyBean foo = // get a bean from somewhere
> >>>>>>>Converter converter = // get a converter that converts MyBeans.
> >>>>>>>String fooString = converter.getAsString(foo);
> >>>>>>>MyBean bar = converter.getAsObject(fooString);
> >>>>>>>
> >>>>>>>foo.equals(bar);  // should return true.
> >>>>>>>
> >>>>>>>
> >>>>>>>Basically, the converter needs to convert an object to a String that
> >>>>>>>can be used later to recreate that Object.  You can do this many
> >>>>>>>different ways.  We have a unique id for every type of object and
> >>>>>>>store all objects in session.  Our converter just returns that unique
> >>>>>>>id and pulls the objects from session using a Map.
> >>>>>>>
> >>>>>>>
> >>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> >>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Hi again thank you for your reply,
> >>>>>>>>I am new to JSF so I need some information on how to create converters.
> >>>>>>>>Do you know any site one the internet that has such information?
> >>>>>>>>
> >>>>>>>>I have already looked on the internet but I only foound converters for
> >>>>>>>>String not for
> >>>>>>>>other classes.
> >>>>>>>>
> >>>>>>>>Can you give directions on how to implement the getAsString and
> >>>>>>>>getAsObject ?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>Heath Borders wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>Yes, you must write a converter for Category.
> >>>>>>>>>
> >>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
> >>>>>>>>>be of a type that is assignment-compatible with the property you've
> >>>>>>>>>bound to your component.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>>>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>Hello I have a problem with the selectItems tag
> >>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>>>>>>>
> >>>>>>>>>>public List getCategories() {
> >>>>>>>>>>   ArrayList retValue = new ArrayList();
> >>>>>>>>>>   retValue.add(new SelectItem("","Choose a category..."));
> >>>>>>>>>>   for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>>>>>>>iter.hasNext();){
> >>>>>>>>>>       Category category=(Category)iter.next();
> >>>>>>>>>>       retValue.add(new SelectItem(category,category.getTitle()));
> >>>>>>>>>>   }
> >>>>>>>>>>   return retValue;
> >>>>>>>>>>}
> >>>>>>>>>>
> >>>>>>>>>>When I run the web application I get the following exception:
> >>>>>>>>>>
> >>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
> >>>>>>>>>>essex.cc403.hbeans.Category
> >>>>>>>>>>
> >>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>>>>>>>
> >>>>>>>>>>Thank you in advanec, kostas
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
Very good idea!
So I have understood from the converter's getAsString and getAsObject 
methods you call the getAsString and getAsObject respectively
 of the session scoped bean. But Is it possible to do this call? I mean 
does the converter has access to the session scope bean?
How can I do it?

Sorry for my questions but I am quite new to JSF.

Heath Borders wrote:

>We have a session-scoped managed bean that implements converter. 
>Whenever one of our objects goes into the getAsString method, we put
>the object in a map keyed by its id.  Then, when the getAsObject
>method is called, we remove the object from the map and return it.
>
>
>On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>Sorry about my previous email, I didn't read it correctly!
>>
>>Another question if I don't bother you
>>
>>As far  as I understood  the methods getAsString and getAsObject
>>serialize and deserialize an object isnt true?
>>If yes then we send the object to the client and we don't keep it in the
>>server. In your previous reply you send that
>>MyFaces keeps the object in the memory but I cannot understand how it is
>>done OR How I have to do it.
>>Can you explain me this confusion that I have?
>>
>>Thank your in advance, Kostas
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>referenced object by the identifier.
>>>>
>>>>
>>>>        
>>>>
>>>We did exactly this.
>>>
>>>
>>>
>>>
>>>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>In you previous message you said:
>>>>
>>>>We elected to keep
>>>>everything in memory since we don't have that many concurrent users.
>>>>
>>>>I didn't understand it can you explain it?
>>>>
>>>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>>>referenced object by the identifier.
>>>>
>>>>
>>>>Heath Borders wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>Depending on the size of your object graph, you might run into
>>>>>performance problems doing that.  It really depends on your situation,
>>>>>but that's something you could definitely try.  We elected to keep
>>>>>everything in memory since we don't have that many concurrent users.
>>>>>
>>>>>
>>>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
>>>>><ka...@yahoo.gr> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>and what if my bean that I want to convert includes another nested objects?
>>>>>>
>>>>>>Is it a good idea to use libraries that serialize and deserialize object
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>from and to xml?
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>Heath Borders wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>getAsString converts the Object to a String and getAsObject converts
>>>>>>>the String back to an Object.
>>>>>>>
>>>>>>>The behaviour should be like this:
>>>>>>>
>>>>>>>MyBean foo = // get a bean from somewhere
>>>>>>>Converter converter = // get a converter that converts MyBeans.
>>>>>>>String fooString = converter.getAsString(foo);
>>>>>>>MyBean bar = converter.getAsObject(fooString);
>>>>>>>
>>>>>>>foo.equals(bar);  // should return true.
>>>>>>>
>>>>>>>
>>>>>>>Basically, the converter needs to convert an object to a String that
>>>>>>>can be used later to recreate that Object.  You can do this many
>>>>>>>different ways.  We have a unique id for every type of object and
>>>>>>>store all objects in session.  Our converter just returns that unique
>>>>>>>id and pulls the objects from session using a Map.
>>>>>>>
>>>>>>>
>>>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>Hi again thank you for your reply,
>>>>>>>>I am new to JSF so I need some information on how to create converters.
>>>>>>>>Do you know any site one the internet that has such information?
>>>>>>>>
>>>>>>>>I have already looked on the internet but I only foound converters for
>>>>>>>>String not for
>>>>>>>>other classes.
>>>>>>>>
>>>>>>>>Can you give directions on how to implement the getAsString and
>>>>>>>>getAsObject ?
>>>>>>>>
>>>>>>>>
>>>>>>>>Heath Borders wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>>>Yes, you must write a converter for Category.
>>>>>>>>>
>>>>>>>>>The object you pass as the 'value' of your SelectItem objects should
>>>>>>>>>be of a type that is assignment-compatible with the property you've
>>>>>>>>>bound to your component.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>>>Hello I have a problem with the selectItems tag
>>>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>>>>>>>
>>>>>>>>>>public List getCategories() {
>>>>>>>>>>   ArrayList retValue = new ArrayList();
>>>>>>>>>>   retValue.add(new SelectItem("","Choose a category..."));
>>>>>>>>>>   for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>>>>>>>iter.hasNext();){
>>>>>>>>>>       Category category=(Category)iter.next();
>>>>>>>>>>       retValue.add(new SelectItem(category,category.getTitle()));
>>>>>>>>>>   }
>>>>>>>>>>   return retValue;
>>>>>>>>>>}
>>>>>>>>>>
>>>>>>>>>>When I run the web application I get the following exception:
>>>>>>>>>>
>>>>>>>>>>javax.faces.FacesException: There is no registered converter for class
>>>>>>>>>>essex.cc403.hbeans.Category
>>>>>>>>>>
>>>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>>>>>>>
>>>>>>>>>>Thank you in advanec, kostas
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                    
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                  
>>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
We have a session-scoped managed bean that implements converter. 
Whenever one of our objects goes into the getAsString method, we put
the object in a map keyed by its id.  Then, when the getAsObject
method is called, we remove the object from the map and return it.


On Wed, 16 Mar 2005 22:25:56 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> Sorry about my previous email, I didn't read it correctly!
> 
> Another question if I don't bother you
> 
> As far  as I understood  the methods getAsString and getAsObject
> serialize and deserialize an object isnt true?
> If yes then we send the object to the client and we don't keep it in the
> server. In your previous reply you send that
> MyFaces keeps the object in the memory but I cannot understand how it is
> done OR How I have to do it.
> Can you explain me this confusion that I have?
> 
> Thank your in advance, Kostas
> 
> Heath Borders wrote:
> 
> >>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>referenced object by the identifier.
> >>
> >>
> >
> >We did exactly this.
> >
> >
> >
> >
> >On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>In you previous message you said:
> >>
> >>We elected to keep
> >>everything in memory since we don't have that many concurrent users.
> >>
> >>I didn't understand it can you explain it?
> >>
> >>It could be a good idea for JSF to store the objects in the server side and just submit an
> >>identifier to with the html. Once the request is received to the server JSF can indentify the
> >>referenced object by the identifier.
> >>
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>Depending on the size of your object graph, you might run into
> >>>performance problems doing that.  It really depends on your situation,
> >>>but that's something you could definitely try.  We elected to keep
> >>>everything in memory since we don't have that many concurrent users.
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>and what if my bean that I want to convert includes another nested objects?
> >>>>
> >>>>Is it a good idea to use libraries that serialize and deserialize object
> >>>>
> >>>>
> >>>>from and to xml?
> >>>
> >>>
> >>>>Heath Borders wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>getAsString converts the Object to a String and getAsObject converts
> >>>>>the String back to an Object.
> >>>>>
> >>>>>The behaviour should be like this:
> >>>>>
> >>>>>MyBean foo = // get a bean from somewhere
> >>>>>Converter converter = // get a converter that converts MyBeans.
> >>>>>String fooString = converter.getAsString(foo);
> >>>>>MyBean bar = converter.getAsObject(fooString);
> >>>>>
> >>>>>foo.equals(bar);  // should return true.
> >>>>>
> >>>>>
> >>>>>Basically, the converter needs to convert an object to a String that
> >>>>>can be used later to recreate that Object.  You can do this many
> >>>>>different ways.  We have a unique id for every type of object and
> >>>>>store all objects in session.  Our converter just returns that unique
> >>>>>id and pulls the objects from session using a Map.
> >>>>>
> >>>>>
> >>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> >>>>><ka...@yahoo.gr> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi again thank you for your reply,
> >>>>>>I am new to JSF so I need some information on how to create converters.
> >>>>>>Do you know any site one the internet that has such information?
> >>>>>>
> >>>>>>I have already looked on the internet but I only foound converters for
> >>>>>>String not for
> >>>>>>other classes.
> >>>>>>
> >>>>>>Can you give directions on how to implement the getAsString and
> >>>>>>getAsObject ?
> >>>>>>
> >>>>>>
> >>>>>>Heath Borders wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>Yes, you must write a converter for Category.
> >>>>>>>
> >>>>>>>The object you pass as the 'value' of your SelectItem objects should
> >>>>>>>be of a type that is assignment-compatible with the property you've
> >>>>>>>bound to your component.
> >>>>>>>
> >>>>>>>
> >>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>>>>>><ka...@yahoo.gr> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Hello I have a problem with the selectItems tag
> >>>>>>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>>>>>
> >>>>>>>>public List getCategories() {
> >>>>>>>>    ArrayList retValue = new ArrayList();
> >>>>>>>>    retValue.add(new SelectItem("","Choose a category..."));
> >>>>>>>>    for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>>>>>iter.hasNext();){
> >>>>>>>>        Category category=(Category)iter.next();
> >>>>>>>>        retValue.add(new SelectItem(category,category.getTitle()));
> >>>>>>>>    }
> >>>>>>>>    return retValue;
> >>>>>>>>}
> >>>>>>>>
> >>>>>>>>When I run the web application I get the following exception:
> >>>>>>>>
> >>>>>>>>javax.faces.FacesException: There is no registered converter for class
> >>>>>>>>essex.cc403.hbeans.Category
> >>>>>>>>
> >>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>>>>>
> >>>>>>>>Thank you in advanec, kostas
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
Sorry about my previous email, I didn't read it correctly!

Another question if I don't bother you

As far  as I understood  the methods getAsString and getAsObject 
serialize and deserialize an object isnt true?
If yes then we send the object to the client and we don't keep it in the 
server. In your previous reply you send that
MyFaces keeps the object in the memory but I cannot understand how it is 
done OR How I have to do it.
Can you explain me this confusion that I have?

Thank your in advance, Kostas

Heath Borders wrote:

>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>referenced object by the identifier.
>>    
>>
>
>We did exactly this.
>
>
>
>
>On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>In you previous message you said:
>>
>>We elected to keep
>>everything in memory since we don't have that many concurrent users.
>>
>>I didn't understand it can you explain it?
>>
>>It could be a good idea for JSF to store the objects in the server side and just submit an
>>identifier to with the html. Once the request is received to the server JSF can indentify the
>>referenced object by the identifier.
>>
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>Depending on the size of your object graph, you might run into
>>>performance problems doing that.  It really depends on your situation,
>>>but that's something you could definitely try.  We elected to keep
>>>everything in memory since we don't have that many concurrent users.
>>>
>>>
>>>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>and what if my bean that I want to convert includes another nested objects?
>>>>
>>>>Is it a good idea to use libraries that serialize and deserialize object
>>>>        
>>>>
>>>>from and to xml?
>>>      
>>>
>>>>Heath Borders wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>getAsString converts the Object to a String and getAsObject converts
>>>>>the String back to an Object.
>>>>>
>>>>>The behaviour should be like this:
>>>>>
>>>>>MyBean foo = // get a bean from somewhere
>>>>>Converter converter = // get a converter that converts MyBeans.
>>>>>String fooString = converter.getAsString(foo);
>>>>>MyBean bar = converter.getAsObject(fooString);
>>>>>
>>>>>foo.equals(bar);  // should return true.
>>>>>
>>>>>
>>>>>Basically, the converter needs to convert an object to a String that
>>>>>can be used later to recreate that Object.  You can do this many
>>>>>different ways.  We have a unique id for every type of object and
>>>>>store all objects in session.  Our converter just returns that unique
>>>>>id and pulls the objects from session using a Map.
>>>>>
>>>>>
>>>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
>>>>><ka...@yahoo.gr> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>Hi again thank you for your reply,
>>>>>>I am new to JSF so I need some information on how to create converters.
>>>>>>Do you know any site one the internet that has such information?
>>>>>>
>>>>>>I have already looked on the internet but I only foound converters for
>>>>>>String not for
>>>>>>other classes.
>>>>>>
>>>>>>Can you give directions on how to implement the getAsString and
>>>>>>getAsObject ?
>>>>>>
>>>>>>
>>>>>>Heath Borders wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>Yes, you must write a converter for Category.
>>>>>>>
>>>>>>>The object you pass as the 'value' of your SelectItem objects should
>>>>>>>be of a type that is assignment-compatible with the property you've
>>>>>>>bound to your component.
>>>>>>>
>>>>>>>
>>>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>>>>>><ka...@yahoo.gr> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>Hello I have a problem with the selectItems tag
>>>>>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>>>>>
>>>>>>>>public List getCategories() {
>>>>>>>>    ArrayList retValue = new ArrayList();
>>>>>>>>    retValue.add(new SelectItem("","Choose a category..."));
>>>>>>>>    for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>>>>>iter.hasNext();){
>>>>>>>>        Category category=(Category)iter.next();
>>>>>>>>        retValue.add(new SelectItem(category,category.getTitle()));
>>>>>>>>    }
>>>>>>>>    return retValue;
>>>>>>>>}
>>>>>>>>
>>>>>>>>When I run the web application I get the following exception:
>>>>>>>>
>>>>>>>>javax.faces.FacesException: There is no registered converter for class
>>>>>>>>essex.cc403.hbeans.Category
>>>>>>>>
>>>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>>>>>
>>>>>>>>Thank you in advanec, kostas
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
> It could be a good idea for JSF to store the objects in the server side and just submit an
> identifier to with the html. Once the request is received to the server JSF can indentify the
> referenced object by the identifier.

We did exactly this.




On Wed, 16 Mar 2005 21:34:26 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> In you previous message you said:
> 
> We elected to keep
> everything in memory since we don't have that many concurrent users.
> 
> I didn't understand it can you explain it?
> 
> It could be a good idea for JSF to store the objects in the server side and just submit an
> identifier to with the html. Once the request is received to the server JSF can indentify the
> referenced object by the identifier.
> 
> 
> Heath Borders wrote:
> 
> >Depending on the size of your object graph, you might run into
> >performance problems doing that.  It really depends on your situation,
> >but that's something you could definitely try.  We elected to keep
> >everything in memory since we don't have that many concurrent users.
> >
> >
> >On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>and what if my bean that I want to convert includes another nested objects?
> >>
> >>Is it a good idea to use libraries that serialize and deserialize object
> >>from and to xml?
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>getAsString converts the Object to a String and getAsObject converts
> >>>the String back to an Object.
> >>>
> >>>The behaviour should be like this:
> >>>
> >>>MyBean foo = // get a bean from somewhere
> >>>Converter converter = // get a converter that converts MyBeans.
> >>>String fooString = converter.getAsString(foo);
> >>>MyBean bar = converter.getAsObject(fooString);
> >>>
> >>>foo.equals(bar);  // should return true.
> >>>
> >>>
> >>>Basically, the converter needs to convert an object to a String that
> >>>can be used later to recreate that Object.  You can do this many
> >>>different ways.  We have a unique id for every type of object and
> >>>store all objects in session.  Our converter just returns that unique
> >>>id and pulls the objects from session using a Map.
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hi again thank you for your reply,
> >>>>I am new to JSF so I need some information on how to create converters.
> >>>>Do you know any site one the internet that has such information?
> >>>>
> >>>>I have already looked on the internet but I only foound converters for
> >>>>String not for
> >>>>other classes.
> >>>>
> >>>>Can you give directions on how to implement the getAsString and
> >>>>getAsObject ?
> >>>>
> >>>>
> >>>>Heath Borders wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Yes, you must write a converter for Category.
> >>>>>
> >>>>>The object you pass as the 'value' of your SelectItem objects should
> >>>>>be of a type that is assignment-compatible with the property you've
> >>>>>bound to your component.
> >>>>>
> >>>>>
> >>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>>>><ka...@yahoo.gr> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hello I have a problem with the selectItems tag
> >>>>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>>>
> >>>>>> public List getCategories() {
> >>>>>>     ArrayList retValue = new ArrayList();
> >>>>>>     retValue.add(new SelectItem("","Choose a category..."));
> >>>>>>     for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>>>iter.hasNext();){
> >>>>>>         Category category=(Category)iter.next();
> >>>>>>         retValue.add(new SelectItem(category,category.getTitle()));
> >>>>>>     }
> >>>>>>     return retValue;
> >>>>>> }
> >>>>>>
> >>>>>>When I run the web application I get the following exception:
> >>>>>>
> >>>>>>javax.faces.FacesException: There is no registered converter for class
> >>>>>>essex.cc403.hbeans.Category
> >>>>>>
> >>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>>>
> >>>>>>Thank you in advanec, kostas
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
In you previous message you said:

We elected to keep
everything in memory since we don't have that many concurrent users.

I didn't understand it can you explain it?

It could be a good idea for JSF to store the objects in the server side and just submit an
identifier to with the html. Once the request is received to the server JSF can indentify the
referenced object by the identifier.



Heath Borders wrote:

>Depending on the size of your object graph, you might run into
>performance problems doing that.  It really depends on your situation,
>but that's something you could definitely try.  We elected to keep
>everything in memory since we don't have that many concurrent users.
>
>
>On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>and what if my bean that I want to convert includes another nested objects?
>>
>>Is it a good idea to use libraries that serialize and deserialize object
>>from and to xml?
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>getAsString converts the Object to a String and getAsObject converts
>>>the String back to an Object.
>>>
>>>The behaviour should be like this:
>>>
>>>MyBean foo = // get a bean from somewhere
>>>Converter converter = // get a converter that converts MyBeans.
>>>String fooString = converter.getAsString(foo);
>>>MyBean bar = converter.getAsObject(fooString);
>>>
>>>foo.equals(bar);  // should return true.
>>>
>>>
>>>Basically, the converter needs to convert an object to a String that
>>>can be used later to recreate that Object.  You can do this many
>>>different ways.  We have a unique id for every type of object and
>>>store all objects in session.  Our converter just returns that unique
>>>id and pulls the objects from session using a Map.
>>>
>>>
>>>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>Hi again thank you for your reply,
>>>>I am new to JSF so I need some information on how to create converters.
>>>>Do you know any site one the internet that has such information?
>>>>
>>>>I have already looked on the internet but I only foound converters for
>>>>String not for
>>>>other classes.
>>>>
>>>>Can you give directions on how to implement the getAsString and
>>>>getAsObject ?
>>>>
>>>>
>>>>Heath Borders wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>Yes, you must write a converter for Category.
>>>>>
>>>>>The object you pass as the 'value' of your SelectItem objects should
>>>>>be of a type that is assignment-compatible with the property you've
>>>>>bound to your component.
>>>>>
>>>>>
>>>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>>>><ka...@yahoo.gr> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>Hello I have a problem with the selectItems tag
>>>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>>>
>>>>>> public List getCategories() {
>>>>>>     ArrayList retValue = new ArrayList();
>>>>>>     retValue.add(new SelectItem("","Choose a category..."));
>>>>>>     for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>>>iter.hasNext();){
>>>>>>         Category category=(Category)iter.next();
>>>>>>         retValue.add(new SelectItem(category,category.getTitle()));
>>>>>>     }
>>>>>>     return retValue;
>>>>>> }
>>>>>>
>>>>>>When I run the web application I get the following exception:
>>>>>>
>>>>>>javax.faces.FacesException: There is no registered converter for class
>>>>>>essex.cc403.hbeans.Category
>>>>>>
>>>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>>>
>>>>>>Thank you in advanec, kostas
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
Depending on the size of your object graph, you might run into
performance problems doing that.  It really depends on your situation,
but that's something you could definitely try.  We elected to keep
everything in memory since we don't have that many concurrent users.


On Wed, 16 Mar 2005 19:37:20 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> and what if my bean that I want to convert includes another nested objects?
> 
> Is it a good idea to use libraries that serialize and deserialize object
> from and to xml?
> 
> Heath Borders wrote:
> 
> >getAsString converts the Object to a String and getAsObject converts
> >the String back to an Object.
> >
> >The behaviour should be like this:
> >
> >MyBean foo = // get a bean from somewhere
> >Converter converter = // get a converter that converts MyBeans.
> >String fooString = converter.getAsString(foo);
> >MyBean bar = converter.getAsObject(fooString);
> >
> >foo.equals(bar);  // should return true.
> >
> >
> >Basically, the converter needs to convert an object to a String that
> >can be used later to recreate that Object.  You can do this many
> >different ways.  We have a unique id for every type of object and
> >store all objects in session.  Our converter just returns that unique
> >id and pulls the objects from session using a Map.
> >
> >
> >On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>Hi again thank you for your reply,
> >>I am new to JSF so I need some information on how to create converters.
> >>Do you know any site one the internet that has such information?
> >>
> >>I have already looked on the internet but I only foound converters for
> >>String not for
> >>other classes.
> >>
> >>Can you give directions on how to implement the getAsString and
> >>getAsObject ?
> >>
> >>
> >>Heath Borders wrote:
> >>
> >>
> >>
> >>>Yes, you must write a converter for Category.
> >>>
> >>>The object you pass as the 'value' of your SelectItem objects should
> >>>be of a type that is assignment-compatible with the property you've
> >>>bound to your component.
> >>>
> >>>
> >>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> >>><ka...@yahoo.gr> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hello I have a problem with the selectItems tag
> >>>>Bellow I have the method that brings the value attribute of the tag:
> >>>>
> >>>>  public List getCategories() {
> >>>>      ArrayList retValue = new ArrayList();
> >>>>      retValue.add(new SelectItem("","Choose a category..."));
> >>>>      for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>>>iter.hasNext();){
> >>>>          Category category=(Category)iter.next();
> >>>>          retValue.add(new SelectItem(category,category.getTitle()));
> >>>>      }
> >>>>      return retValue;
> >>>>  }
> >>>>
> >>>>When I run the web application I get the following exception:
> >>>>
> >>>>javax.faces.FacesException: There is no registered converter for class
> >>>>essex.cc403.hbeans.Category
> >>>>
> >>>>Do I really  need to write a converter for the Category? Can I avoid it?
> >>>>Can you axplain me what I have to do because I am not familiar with JSF
> >>>>
> >>>>Thank you in advanec, kostas
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
and what if my bean that I want to convert includes another nested objects?

Is it a good idea to use libraries that serialize and deserialize object 
from and to xml?

Heath Borders wrote:

>getAsString converts the Object to a String and getAsObject converts
>the String back to an Object.
>
>The behaviour should be like this:
>
>MyBean foo = // get a bean from somewhere
>Converter converter = // get a converter that converts MyBeans.
>String fooString = converter.getAsString(foo);
>MyBean bar = converter.getAsObject(fooString);
>
>foo.equals(bar);  // should return true.
>
>
>Basically, the converter needs to convert an object to a String that
>can be used later to recreate that Object.  You can do this many
>different ways.  We have a unique id for every type of object and
>store all objects in session.  Our converter just returns that unique
>id and pulls the objects from session using a Map.
>
>
>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>Hi again thank you for your reply,
>>I am new to JSF so I need some information on how to create converters.
>>Do you know any site one the internet that has such information?
>>
>>I have already looked on the internet but I only foound converters for
>>String not for
>>other classes.
>>
>>Can you give directions on how to implement the getAsString and
>>getAsObject ?
>>
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>Yes, you must write a converter for Category.
>>>
>>>The object you pass as the 'value' of your SelectItem objects should
>>>be of a type that is assignment-compatible with the property you've
>>>bound to your component.
>>>
>>>
>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>Hello I have a problem with the selectItems tag
>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>
>>>>  public List getCategories() {
>>>>      ArrayList retValue = new ArrayList();
>>>>      retValue.add(new SelectItem("","Choose a category..."));
>>>>      for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>iter.hasNext();){
>>>>          Category category=(Category)iter.next();
>>>>          retValue.add(new SelectItem(category,category.getTitle()));
>>>>      }
>>>>      return retValue;
>>>>  }
>>>>
>>>>When I run the web application I get the following exception:
>>>>
>>>>javax.faces.FacesException: There is no registered converter for class
>>>>essex.cc403.hbeans.Category
>>>>
>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>
>>>>Thank you in advanec, kostas
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
Thanks for the reply

Heath Borders wrote:

>getAsString converts the Object to a String and getAsObject converts
>the String back to an Object.
>
>The behaviour should be like this:
>
>MyBean foo = // get a bean from somewhere
>Converter converter = // get a converter that converts MyBeans.
>String fooString = converter.getAsString(foo);
>MyBean bar = converter.getAsObject(fooString);
>
>foo.equals(bar);  // should return true.
>
>
>Basically, the converter needs to convert an object to a String that
>can be used later to recreate that Object.  You can do this many
>different ways.  We have a unique id for every type of object and
>store all objects in session.  Our converter just returns that unique
>id and pulls the objects from session using a Map.
>
>
>On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>Hi again thank you for your reply,
>>I am new to JSF so I need some information on how to create converters.
>>Do you know any site one the internet that has such information?
>>
>>I have already looked on the internet but I only foound converters for
>>String not for
>>other classes.
>>
>>Can you give directions on how to implement the getAsString and
>>getAsObject ?
>>
>>
>>Heath Borders wrote:
>>
>>    
>>
>>>Yes, you must write a converter for Category.
>>>
>>>The object you pass as the 'value' of your SelectItem objects should
>>>be of a type that is assignment-compatible with the property you've
>>>bound to your component.
>>>
>>>
>>>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
>>><ka...@yahoo.gr> wrote:
>>>
>>>
>>>      
>>>
>>>>Hello I have a problem with the selectItems tag
>>>>Bellow I have the method that brings the value attribute of the tag:
>>>>
>>>>  public List getCategories() {
>>>>      ArrayList retValue = new ArrayList();
>>>>      retValue.add(new SelectItem("","Choose a category..."));
>>>>      for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>>>iter.hasNext();){
>>>>          Category category=(Category)iter.next();
>>>>          retValue.add(new SelectItem(category,category.getTitle()));
>>>>      }
>>>>      return retValue;
>>>>  }
>>>>
>>>>When I run the web application I get the following exception:
>>>>
>>>>javax.faces.FacesException: There is no registered converter for class
>>>>essex.cc403.hbeans.Category
>>>>
>>>>Do I really  need to write a converter for the Category? Can I avoid it?
>>>>Can you axplain me what I have to do because I am not familiar with JSF
>>>>
>>>>Thank you in advanec, kostas
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
getAsString converts the Object to a String and getAsObject converts
the String back to an Object.

The behaviour should be like this:

MyBean foo = // get a bean from somewhere
Converter converter = // get a converter that converts MyBeans.
String fooString = converter.getAsString(foo);
MyBean bar = converter.getAsObject(fooString);

foo.equals(bar);  // should return true.


Basically, the converter needs to convert an object to a String that
can be used later to recreate that Object.  You can do this many
different ways.  We have a unique id for every type of object and
store all objects in session.  Our converter just returns that unique
id and pulls the objects from session using a Map.


On Wed, 16 Mar 2005 16:49:25 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> Hi again thank you for your reply,
> I am new to JSF so I need some information on how to create converters.
> Do you know any site one the internet that has such information?
> 
> I have already looked on the internet but I only foound converters for
> String not for
> other classes.
> 
> Can you give directions on how to implement the getAsString and
> getAsObject ?
> 
> 
> Heath Borders wrote:
> 
> >Yes, you must write a converter for Category.
> >
> >The object you pass as the 'value' of your SelectItem objects should
> >be of a type that is assignment-compatible with the property you've
> >bound to your component.
> >
> >
> >On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
> ><ka...@yahoo.gr> wrote:
> >
> >
> >>Hello I have a problem with the selectItems tag
> >>Bellow I have the method that brings the value attribute of the tag:
> >>
> >>   public List getCategories() {
> >>       ArrayList retValue = new ArrayList();
> >>       retValue.add(new SelectItem("","Choose a category..."));
> >>       for(Iterator iter=this.eventRegistry.getCategories().iterator();
> >>iter.hasNext();){
> >>           Category category=(Category)iter.next();
> >>           retValue.add(new SelectItem(category,category.getTitle()));
> >>       }
> >>       return retValue;
> >>   }
> >>
> >>When I run the web application I get the following exception:
> >>
> >>javax.faces.FacesException: There is no registered converter for class
> >>essex.cc403.hbeans.Category
> >>
> >>Do I really  need to write a converter for the Category? Can I avoid it?
> >>Can you axplain me what I have to do because I am not familiar with JSF
> >>
> >>Thank you in advanec, kostas
> >>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org

Re: Problem with selectItems tag and its binded method

Posted by Kostas Karadamoglou <ka...@yahoo.gr>.
Hi again thank you for your reply,
I am new to JSF so I need some information on how to create converters.
Do you know any site one the internet that has such information?

I have already looked on the internet but I only foound converters for 
String not for
other classes.

Can you give directions on how to implement the getAsString and 
getAsObject ?


Heath Borders wrote:

>Yes, you must write a converter for Category.
>
>The object you pass as the 'value' of your SelectItem objects should
>be of a type that is assignment-compatible with the property you've
>bound to your component.
>
>
>On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
><ka...@yahoo.gr> wrote:
>  
>
>>Hello I have a problem with the selectItems tag
>>Bellow I have the method that brings the value attribute of the tag:
>>
>>   public List getCategories() {
>>       ArrayList retValue = new ArrayList();
>>       retValue.add(new SelectItem("","Choose a category..."));
>>       for(Iterator iter=this.eventRegistry.getCategories().iterator();
>>iter.hasNext();){
>>           Category category=(Category)iter.next();
>>           retValue.add(new SelectItem(category,category.getTitle()));
>>       }
>>       return retValue;
>>   }
>>
>>When I run the web application I get the following exception:
>>
>>javax.faces.FacesException: There is no registered converter for class
>>essex.cc403.hbeans.Category
>>
>>Do I really  need to write a converter for the Category? Can I avoid it?
>>Can you axplain me what I have to do because I am not familiar with JSF
>>
>>Thank you in advanec, kostas
>>
>>    
>>
>
>
>  
>


Re: Problem with selectItems tag and its binded method

Posted by Heath Borders <he...@gmail.com>.
Yes, you must write a converter for Category.

The object you pass as the 'value' of your SelectItem objects should
be of a type that is assignment-compatible with the property you've
bound to your component.


On Wed, 16 Mar 2005 10:05:13 +0000, Kostas Karadamoglou
<ka...@yahoo.gr> wrote:
> Hello I have a problem with the selectItems tag
> Bellow I have the method that brings the value attribute of the tag:
> 
>    public List getCategories() {
>        ArrayList retValue = new ArrayList();
>        retValue.add(new SelectItem("","Choose a category..."));
>        for(Iterator iter=this.eventRegistry.getCategories().iterator();
> iter.hasNext();){
>            Category category=(Category)iter.next();
>            retValue.add(new SelectItem(category,category.getTitle()));
>        }
>        return retValue;
>    }
> 
> When I run the web application I get the following exception:
> 
> javax.faces.FacesException: There is no registered converter for class
> essex.cc403.hbeans.Category
> 
> Do I really  need to write a converter for the Category? Can I avoid it?
> Can you axplain me what I have to do because I am not familiar with JSF
> 
> Thank you in advanec, kostas
> 


-- 
-Heath Borders-Wing
hborders@mail.win.org