Hi Michael,

(btw yes i work together with Dirk Fangohr. sorry for the delay, was a
bit busy last Friday)

the problem is you has int as value in getActive() but String in select items.

Try
       <tc:selectItem itemValue="#{2}" itemLabel="active"/>
       <tc:selectItem itemValue="#{1}" itemLabel="suspended"/>
       <tc:selectItem itemValue="#{0}" itemLabel="inactice"/>

you don't need a converter!


Regards,
    Volker

2010/4/21 Michael Kakuschky <[email protected]>:
> Hello,
>
> I have a strange problem selecting the correct item of tx:selectOneChoice
> boxes if the  itemValue of the tc:selectItem item is an Integer.
>
> Storing the selected values works fine as aspected. I will find the correct
> values in mybackend database
>
> What does not work is that after rerendering the correct value is selected.
> If in my example the MyController.active Integer attribute has a value of 1
> "suspended" should be selected. But it's always the first value of the
> tc:selectItem elements selected.
>
> I tried already to use a converter because  I guessed that  there is an
> conversion problem between Integer  and String but it does not help.
>
> If the selectItem bind to a String  it works fine (sure without the
> integerConverter). With the tomahawk h:selectOneMenu component it works also
> with Integers.
>
> Knows anybody how to solve this problem for tobago to use an Integer as
> value attribute?
>
> <tc:cell>
>    <tx:selectOneChoice value="#{myController.active}" label="active"
>  converter="integerConverter">
>        <tc:selectItem itemValue="2" itemLabel="active"/>
>        <tc:selectItem itemValue="1" itemLabel="suspended"/>
>        <tc:selectItem itemValue="0" itemLabel="inactice"/>
>    </tx:selectOneChoice>
> </tc:cell>
>
> public class MyController{
>   private Integer active = 1;
>
>   public Integer getActive() {
>       return active;
>   }
>   public void setActive(Integer active) {
>       this.active = active;
>   }
> }
>
> public class IntegerConverter  implements Converter {
>
>  public Object getAsObject(FacesContext context, UIComponent component,
> String value) throws ConverterException {
>   return Integer.getInteger(value);
>  }
>
> public String getAsString(FacesContext context, UIComponent component,
> Object value) throws ConverterException {
>   if (value instanceof Integer) {
>     return ((Integer) value).toString();
>   }
>   return "";
>  }
> }
>
> Thanks and best regards
>
> Michael
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Reply via email to