oh.  Sorry I misunderstood your first email.

That means that there's something wrong with the selectOneMenu or something.


On Fri, 18 Mar 2005 16:22:42 +0000, Kostas Karadamoglou
<[EMAIL PROTECTED]> wrote:
> Yes but how can JSF call the getAsObject method of the converter with
> the str parameter equals to null !!!
> 
> I checked the generated code and the all the option tags in the drop
> down menu have a value ("1","2","3","4","5" and so on)
> So how jsf returns a null string? thats the problem. :(
> Heath Borders wrote:
> 
> >No, you don't want to do that.  Otherwise, the category object will
> >not be properly set in his setter.  The problem is definitely with
> >your converter.  My guess is that its getting re-created between
> >requests, and thus the map is getting cleared.  I couldn't tell you
> >why that's happening, though.
> >
> >
> >On Fri, 18 Mar 2005 11:05:23 -0500, Srikanth Madarapu
> ><[EMAIL PROTECTED]> wrote:
> >
> >
> >>Can you try
> >>
> >>this.allCategories.add(new SelectItem(category.getId(),  
> >>category.getTitle()));
> >>
> >>The getId() method should return the same value as returned by 
> >>getAsString(). I think there is some problem...
> >>
> >>Srikanth
> >>
> >>-----Original Message-----
> >>From: Kostas Karadamoglou [mailto:[EMAIL PROTECTED]
> >>Sent: Friday, March 18, 2005 10:56 AM
> >>To: MyFaces Discussion
> >>Subject: Re: Problem with the getAsObject of a Converter
> >>
> >>Hi, I attached the getter of allcategories, as you can see I return a
> >>list of selectItem objects
> >>
> >>   public List getAllCategories(){
> >>       if(this.allCategories==null){
> >>           this.allCategories=new ArrayList();
> >>           this.allCategories.add(new SelectItem(new Category(),"Choose
> >>a category..."));
> >>           List categories=this.eventRegistry.getCategories();
> >>           for(Iterator iter=categories.iterator(); iter.hasNext();){
> >>               Category category=(Category)iter.next();
> >>               this.allCategories.add(new SelectItem(category,
> >>category.getTitle()));
> >>           }
> >>       }
> >>       return this.allCategories;
> >>   }
> >>
> >>Srikanth Madarapu wrote:
> >>
> >>
> >>
> >>>What is the return type of allCategories ?
> >>>
> >>>The list coming from allCategories should be a list of "SelectItem" 
> >>>objects, I think in yours case its just a list of Strings
> >>>
> >>>-Srikanth
> >>>
> >>>
> >>>-----Original Message-----
> >>>From: Kostas Karadamoglou [mailto:[EMAIL PROTECTED]
> >>>Sent: Friday, March 18, 2005 9:17 AM
> >>>To: [email protected]
> >>>Subject: Problem with the getAsObject of a Converter
> >>>
> >>>
> >>>Hi again!!!
> >>>
> >>>I have another problem now, Very strange Can you suggest me a solution?
> >>>
> >>>I created a converter for objects of type Category in order to display
> >>>some Category beans in a selectOneMenu tag.
> >>>
> >>>I have debuged the application and I noticed a strange behaviour of JSF
> >>>which I cannot understand.
> >>>Below I have the sequence explanation of the problem and the content of
> >>>each method and jsp fragment.
> >>>
> >>>1)The getAsString method works perfectly and returns the following
> >>>strings "0","1","2","3","4","5","6","7"
> >>>
> >>>2)The page is displayed properly, and I choose from the drop down menu a
> >>>category.
> >>>
> >>>2)Afterwords JSF invokes getAsObject (I think for the chosen option)
> >>>with the str parameter null !!!!!!!
> >>>In this situation I return a null object (which is wrong).
> >>>
> >>>4)After that  when the page is redisplayed the getAsString throw an
> >>>Exception because of the null value
> >>>
> >>>JSP-------------------------------------------------------
> >>>   <h:selectOneMenu id="selectCategory"
> >>>converter="#{categoryConverter}" value="#{eventHandler.selectedCategory}">
> >>>       <f:selectItems id="allCategories"
> >>>value="#{eventHandler.allCategories}"/>
> >>>   </h:selectOneMenu>
> >>>
> >>>getAsString------------------------------------------------
> >>>
> >>>   public String getAsString(FacesContext facesContext, UIComponent
> >>>uIComponent, Object obj) throws ConverterException {
> >>>       String retValue=null;
> >>>       if(obj==null)
> >>>           throw new ConverterException("not null object of type
> >>>Category expected");
> >>>       else if(obj instanceof Category){
> >>>           Category category=(Category)obj;
> >>>           map.put(new Integer(category.getId()), category);
> >>>           retValue=String.valueOf(category.getId());
> >>>       }else{
> >>>           throw new ConverterException("object of type Category
> >>>expected received: "+obj.getClass().getName()+"="+obj.toString());
> >>>       }
> >>>       return retValue;
> >>>   }
> >>>
> >>>getAsObject------------------------------------------------
> >>>
> >>>    public Object getAsObject(FacesContext facesContext, UIComponent
> >>>uIComponent, String str) throws ConverterException {
> >>>       Category retValue=null;
> >>>       if(str!=null){
> >>>           try{
> >>>               System.out.println(str);
> >>>               Integer id=Integer.valueOf(str);
> >>>               retValue=(Category)map.get(id);
> >>>           }catch(Exception ex){
> >>>               throw new ConverterException("a number formatted string
> >>>expected");
> >>>           }
> >>>
> >>>       }else{
> >>>           //throw new ConverterException("a not null string expected");
> >>>           return null;
> >>>       }
> >>>       return retValue;
> >>>   }
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
> 
> 


-- 
-Heath Borders-Wing
[EMAIL PROTECTED]

Reply via email to