1

我有一个用于 selectOneMenu 中列出的专辑实体的转换器,如果有的话,需要进行哪些修改才能将它与 selectManyMenu 一起使用?

非常感谢与 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() : "";
     }
    }
4

1 回答 1

1

无需更改。转换器是基于每个项目应用的,而不是基于每个列表/数组的。

于 2012-10-13T12:58:02.397 回答