showcase rendered primeface org horario for java primefaces converter picklist

java - org - rendered primefaces showcase



Primefaces Picklist Converter (1)

Para la lista de selección usa este generic converter :

import java.util.Map; import java.util.Map.Entry; import java.util.UUID; import java.util.WeakHashMap; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; @FacesConverter(value = "entityConverter") public class EntityConverter implements Converter { private static Map<Object, String> entities = new WeakHashMap<Object, String>(); @Override public String getAsString(FacesContext context, UIComponent component, Object entity) { synchronized (entities) { if (!entities.containsKey(entity)) { String uuid = UUID.randomUUID().toString(); entities.put(entity, uuid); return uuid; } else { return entities.get(entity); } } } @Override public Object getAsObject(FacesContext context, UIComponent component, String uuid) { for (Entry<Object, String> entry : entities.entrySet()) { if (entry.getValue().equals(uuid)) { return entry.getKey(); } } return null; } }

Estoy usando Primefaces 4.0 y JSF 2.2. Usé una lista de selección con un convertidor. El problema es que no obtengo el arg2 correcto en mi convertidor. Siempre dice 0 . Mi expectativa es que este es el id del elemento y podría analizarlo fuera de las listas de origen / destino. ¿Algunas ideas?

My Converter está inspirado en Cómo escribir un convertidor personalizado para <p: pickList> .

Mi declaración de lista de selección es la siguiente:

<p:pickList value="#{loadingPlaceGroups.pickList}" style="margin:0" var="loadingPlace" converter="primeFacesPickListConverter" itemValue="#{loadingPlace}" itemLabel="#{loadingPlace.name}#{loadingPlace.location.address.street}#{loadingPlace.location.address.houseNr}#{loadingPlace.location.address.zipCode}#{loadingPlace.location.address.city}" showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" styleClass="picklist500x350source picklist500x350target"> <f:facet name="sourceCaption">Alle Ladestellen</f:facet> <f:facet name="targetCaption">Gewählte Ladestellen</f:facet> <p:column style="border-bottom:1px solid lightgray"> <p:panelGrid> <p:row> <p:column style="padding-left:0;font-size:12pt"> <h:outputLabel value="#{loadingPlace.name}" style="font-weight:bold" /> </p:column> </p:row> <p:row> <p:column style="padding:0"> <h:outputLabel value="#{loadingPlace.location.address.street} #{loadingPlace.location.address.houseNr}" /> </p:column> </p:row> <p:row> <p:column style="padding:0"> <h:outputLabel value="#{loadingPlace.location.address.zipCode} #{loadingPlace.location.address.city}" /> </p:column> </p:row> </p:panelGrid> </p:column> </p:pickList>