[jboss-user] [JBoss Seam] - Re: Problem with s:selectItems
jquery@interia.pl
do-not-reply at jboss.com
Sat Mar 10 14:13:44 EST 2007
Actually the difference between parameters in set and get methods appeared because I was trying different combination of collections.
It was my mistake.
Now as you said the I have following code:
| @Name("personHome")
| public class PersonHome extends EntityHome<Person> {
|
| public List<Country> countries = new ArrayList<Country>();
| public long countryId = 1;
|
|
| public long getCountryId() {
| return countryId;
| }
|
| public void setCountryId(long countryId) {
| this.countryId = countryId;
| }
|
| public void setCountries(List<Country> countries) {
|
| }
|
| public List<Country> getCountries(){
| Country country = new Country();
| country.setId(1);
| country.setName("Poland");
| countries.add(country);
|
| return countries;
| }
| }
|
And xhtml:
|
| <h:selectOneMenu value="#{personHome.countryId}" converter="#{countryConverter.converter}">
| <s:selectItems value="#{personHome.countries}" var="country" label="#{country.name}" />
| </h:selectOneMenu>
|
|
And a converter which is based on ui seam example:
|
| @Name("countryConverter")
| public class CountryConverter {
| Converter getConverter(){
| return new Converter(){
| @Transactional
| public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) throws ConverterException
| {
| if (arg2 == null) {
| return null;
| }
| try {
| return ((EntityManager) Component.getInstance("entityManager")).find(Country.class, Integer.valueOf(arg2));
| } catch (NumberFormatException e) {
| throw new ConverterException("Cannot find selected country", e);
| }
| }
|
| @Transactional
| public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) throws ConverterException
| {
| if (arg2 instanceof Country)
| {
| Country country = (Country) arg2;
| return (new Long(country.getId())).toString();
| }
| else
| {
| return null;
| }
| }
|
| };
| }
|
| }
|
But I still get error:
| Value is no String (class=java.lang.Long, value=1) and component person:_id38with path: {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /specialist/spec_registration.xhtml][Class: javax.faces.component.html.HtmlForm,Id: person][Class: org.jboss.seam.ui.UIValidateAll,Id: _id7][Class: org.jboss.seam.ui.UIDecorate,Id: _id37][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id38]} does not have a Converter
|
|
I don't know where the error comes from and why the converter is not visible.
I would apprecite any suggestions.
jquery
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4026894#4026894
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4026894
More information about the jboss-user
mailing list