2011-06-26 1 views
1

J'ai un gros problème avec la classe Convertisseur. J'utilise h: selectOneMenu pour sélectionner une "catégorie" pour mon "Produit" Enetity. Quand je soumets le formulaire, alors j'obtiens l'erreur suivante:Convertisseur mis en œuvre mais ayant toujours une erreur "Valeur de réglage d'erreur de conversion" pour 'Convertisseur nul' "

• Erreur de conversion de la valeur '' pour 'convertisseur nul'.

Je ne trouve pas ce qui ne va pas avec ma mise en œuvre. Aussi je cherche comment faire cela en travaillant avec Seam-Faces ... Des idées? Merci. J'utilise JSF Mojarra 2.1.2 (FCS 20110613), GlassFish v 3.1, PrimeFaces 2.x, PrettyFaces 3.x et JPA 2.0.

MA page JSF:

<h:selectOneMenu id="selectCategory" 
           value="#{productController.category}">     
        <f:selectItems value="#{categoryController.listCategory()}" var="category" itemLabel="#{category.name}" itemValue="#{category}"/> 
        <f:converter converterId="categoryConverter" />  
</h:selectOneMenu> 

MY classe Converter:

@FacesConverter(forClass=Category.class, value="categoryConverter") 
public class CategoryConverter implements Converter { 
    private CategoryController ctrl; 

    @Override 
    public Object getAsObject(FacesContext context, UIComponent component, String value) { 

     ctrl = (CategoryController) context.getApplication().getELResolver().getValue(
       context.getELContext(), null, "categoryController");   

     Category category = ctrl.findById(Integer.valueOf(value)); 
     return category; 
    } 

    @Override 
    public String getAsString(FacesContext context, UIComponent component, Object value) { 

     return "" + ((Category) value).getCategoryid(); 
    } 
} 

une partie de ma ProductController Classe:

@ManagedBean(name = "productController") 
@RequestScoped 
ProductController class 

     public ProductController{ 
    private Category category; 
    //getters :: setters 

Répondre

1

Merci, mais je l'avais essayé avec le système. outs. Les valeurs sont envoyées correctement par submit et retourné l'objet catégorie de droite pour la valeur donnée (#ID). mais ayant toujours la même erreur.

Quoi qu'il en soit ... J'ai trouvé le problème. Le convertisseur fonctionne bien comme prévu.

La seule chose qui provoque l'erreur était que le produit de champ "image". Je n'avais pas de convertisseur pour le champ d'image. Lorsque j'ai supprimé cette ligne du formulaire JSF, il est soumis sans erreur.

Le type de propriété d'image est un octet. Il doit donc également être converti dans le JSF, par exemple les autres champs qui ne sont pas des chaînes.

juste une erreur de débutant je sais :)

StringToByteConverter: here is an example