http://download.oracle.com/docs/cd/B31017_01/web.1013/b28967/web_val006.htm
http://facestutorials.icefaces.org/tutorial/converter-tutorial.html
Pero y que pasa si en el método getAsObject necesito acceder a recursos persistentes? (típicamente una db). Bueno, mi aplicación tiene una capa para ello, y resulta ser un EJB. Entonces debería inyectar el EJB al converter....
Un momento. Si puedo inyectar un EJB en un converter?... No. La especificació dice: "Only beans declared to be in request, session, or application scope are eligble for resource injection."
Entonces, hagamos al converter un managed bean para poder inyectarle el recurso necesario. Algo como esto:
@ManagedBean
@ApplicationScoped
public class SomethingConverter implements Converter {
@ManagedProperty
private ElRecurso elrecurso;
...
Y para utilizarlo:
<h:outputText value="#{SomethingBean.something}" converter="#{somethingConverter}" />
No estoy seguro, pero no funciona registrando el converter en el faces-config.xml, hay que escribirlo en el componente.
La solución fue encontrada en:
http://stackoverflow.com/questions/3630403/how-do-i-access-ejb-bean-when-inside-a-custom-converter
No hay comentarios:
Publicar un comentario