2012-10-13 42 views
1

我有一个在selectOneMenu中列出的Album实体的转换器,如果有selectManyMenu,需要进行哪些修改才能使用它?selectManyMenu转换器vs selectOneMenu转换器

与selectManyMenu一起使用的转换器的工作示例非常感谢。

转换为selectOneMenu用于

package converter; 

import javax.faces.application.FacesMessage; 
import javax.faces.component.UIComponent; 
import javax.faces.context.FacesContext; 
import javax.faces.convert.Converter; 
import javax.faces.convert.ConverterException; 
import javax.faces.convert.FacesConverter; 
import javax.persistence.EntityManager; 

import entities.Album; 

import util.EntityUtil; 

@FacesConverter("albumconverter") 
public class AlbumConverter implements Converter { 

    EntityManager em = EntityUtil.getEntityManager(); 

    public Object getAsObject(FacesContext context, UIComponent component, String value) { 
     if (value == null || value.length() == 0) { 
      return null; 
     } 
      Album album = em.find(
        Album.class, 
        Long.parseLong(value)); 
      return album; 
    } 

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

     return value instanceof Album ? 
       ((Album) value).getAlbumId().toString() : ""; 
    } 
    } 

回答

1

有没有必要改变。转换器是基于每个项目应用的,而不是基于每个列表/阵列。