martes, 3 de julio de 2007

Eventos en Seam

Seam contempla varios modelos de eventos:

  • JSF eventos
    • <h:commandButton value="enviar" action="#{helloWorld.sayHello}"/>
  • jBPM transition events (.jpdl), se especifican en la etiqueta event en la cual hay que definir el tipo de evento (node-enter, node-leave, process-start, process-end, task-create, task-assign, task-start, task-end, before-signal, after-signal). Hay que distinguir entre bussiness process (varios usuarios implicados) y pageflow (un usuario)
    • <event type="">
  • Seam page actions (pages.xml), se ejecutan antes del renderizado de una página
    • <pages>
      <page view-id="hello.jsp" action="#{helloWorld.sayHello}"/>
      </pages>

  • Seam component-driven events
    • se puede definir en el archivo components.xml o en el propio código java a través de anotaciones o referencias a componentes propios de Seam es decir Events.instance
      • anotacion para observar un evento @Observer("nombreEvento")
      • anotación para lanzar un evento @RaiseEvent("nombreEvento")
  • Seam contextual events
    • componentes Seam siempre instalados
      • preSetVariable, postSetVariable, preRemoveVariable ...
En @RaiseEvent(value="nombreEvento")
se produce cuando el metodo devuelve un not-null y sin excepciones!

1 comentario:

Juan Antonio Ruz dijo...

Con la anotación @RaiseEvent(value="nombreEvento")

se produce un evento a la salida del metodo en caso de que no devuelva null!!!