Adición del componente de mensajes a una aplicación JSF

Utilice el componente de mensajes del Explorador de Business Process Choreographer para representar objetos de datos y tipos primitivos en aplicaciones JSF (JavaServer Faces).

Si el tipo de mensaje es un tipo primitivo, se representan una etiqueta y un campo de entrada. Si el tipo de mensaje es un objeto de datos, el componente atraviesa el objeto y representa los elementos en el objeto.

  1. Añada el componente de mensajes al archivo JSP (JavaServer Pages).

    Añada el código bpe:form al código <h:form>. El código bpe:form debe incluir un atributo model.

    En el ejemplo siguiente se muestra cómo añadir un componente de mensajes.

    <h:form>
    
       <h:outputText value="Input Message" /> 
       <bpe:form model="#{MyHandler.inputMessage}" readOnly="true" />
    
       <h:outputText value="Output Message" />  
       <bpe:form model="#{MyHandler.outputMessage}" /> 
    
    </h:form>

    El atributo model del componente de mensajes hace referencia a un objeto com.ibm.bpc.clientcore.MessageWrapper. Este objeto de envoltorio envuelve un objeto SDO (Service Data Object) o un tipo primitivo Java, por ejemplo, int o boolean. En el ejemplo, el mensaje lo suministra una propiedad del bean gestionado MyHandler.

  2. Configure el bean gestionado al que se hace referencia en el código bpe:form.

    El siguiente ejemplo muestra cómo añadir el bean gestionado MyHandler al archivo de configuración.

    <managed-bean>
    <managed-bean-name>MyHandler</managed-bean-name>
    <managed-bean-class>com.ibm.bpe.sample.jsf.MyHandler</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    
       <managed-property>
          <property-name>type</property-name>
          <value>com.ibm.task.clientmodel.bean.TaskInstanceBean</value>
       </managed-property>
    
    </managed-bean>
  3. Añada el código personalizado a la aplicación JSF.

    El siguiente ejemplo muestra cómo implementar mensajes de entrada y salida.

    public class MyHandler implements ItemListener {
    
      private TaskInstanceBean taskBean;
      private MessageWrapper inputMessage, outputMessage 
    
      /* Método de escucha, por ejemplo, cuando se ha seleccionado una instancia de
       * tarea en un manejador de listas.
       * Asegúrese de que el manejador se registre en faces-config.xml o manualmente.
       */ 
      public void itemChanged(Object item) {
        if( item instanceof TaskInstanceBean ) {
            taskBean = (TaskInstanceBean) item ;
        }
      }
    
      /* Obtener el envoltorio de mensajes de entrada
       */
      public MessageWrapper getInputMessage() {
        try{
            inputMessage = taskBean.getInputMessageWrapper() ;
        }
        catch( Exception e ) { 
            ;       //...pasar por alto errores para simplicidad
        }
        return inputMessage;
      }
    
      /* Obtener el envoltorio de mensajes de salida
       */
      public MessageWrapper getOutputMessage() {
        // Recuperar el mensaje del bean. Si no hay ningún mensaje, cree uno
        // si la tarea ha sido reclamada por el usuario. Asegúrese de que sólo
        // los propietarios potenciales o los propietarios pueden manejar el
        // mensaje de salida.
        try{
            outputMessage = taskBean.getOutputMessageWrapper();
            if( outputMessage == null 
             && taskBean.getState() == TaskInstanceBean.STATE_CLAIMED ) { 
                HumanTaskManagerService htm = getHumanTaskManagerService();
                outputMessage = new MessageWrapperImpl();
                outputMessage.setMessage(   
                   htm.createOutputMessage( taskBean.getID() ).getObject() 
                );
             }
        }
        catch( Exception e ) { 
            ;       //...pasar por alto errores para simplicidad
        }
        return outputMessage
      }
    }
    
         

    El bean gestionado MyHandler implementa la interfaz com.ibm.jsf.handler.ItemListener de manera que pueda registrarse como un receptor de elementos en manejadores de lista. Cuando el usuario pulsa un elemento de la lista, se envía una notificación al bean MyHandler sobre el elemento seleccionado en su método itemChanged( Object item ). El manejador comprueba el tipo de elemento y, a continuación, almacena una referencia al objeto TaskInstanceBean asociado. Para utilizar esta interfaz, añada una entrada al manejador de lista adecuado en el archivo faces-config.xml.

    El bean MyHandler proporciona los métodos getInputMessage y getOutputMessage. Ambos métodos devuelven un objeto MessageWrapper. Los métodos delegan las llamadas al bean de instancia de tarea al que se hace referencia. Si el bean de instancia de tarea devuelve un valor nulo, por ejemplo, porque no se haya establecido un mensaje, el manejador crea y almacena un mensaje nuevo y vacío. El componente de mensajes muestra los mensajes proporcionados por el bean MyHandler.

La aplicación JSF contiene ahora una página JavaServer que puede representar objetos de datos y tipos primitivos.

Condiciones de uso |

Última actualización: Wed Apr 19 21:34:07 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)