Logic Tags

Top  Previous  Next

O Lumis Portal suporta condicionais para montar a definição do DOUI de uma interface dinamicamente, durante sua execução.

As condicionais do douidefinition.xml devem estar declaradas no cabeçalho com o namespace http://www.lumis.com.br/lumisportal/xsd/doui/logic. Costuma-se associar o nome logic ao namespace afim de explicitar que está utilizando-se desta funcionalidade.

As tags para a utilização das condicionais só podem ser inseridas dentro da seção de interfaces.

A lista de tags existentes são:

choose: Indica que um bloco da definição será decidida de acordo com condicionais. As seguintes tags devem estar dentro do choose e definem as condições:

 when: Indica uma condição, que se atendida o bloco dentro desta tag deve ser utilizada. O atributo test determina qual é a expressão que deverá ser avaliada. A expressão deve ter um resultado do tipo boolean. O valor do atributo test já é a expressão, e não deve ser envolvida pelo ${ ... } normalmente usado para incluir expressões EL dentro de strings. Uma vez que a condição de uma tag when é avaliada como verdadeira, o choose termina sem avaliar suas outras opções (ou seja, apenas o primeiro when cujo test resultou em verdadeiro será utilizado).

 otherwise: Indica que se nenhuma condição das tags when for avaliada como verdadeiro, este trecho será utilizado. A presença desta tag é opcional, e ela deverá sempre ser a última dentro de um grupo choose. Caso esta tag não esteja presente e nenhuma condição de when seja verdadeiro, o choose será eliminado, sem gerar nenhum fragmento de XML em seu lugar.

Exemplo de uso do choose:

<doui:douiDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                                               xmlns:doui="http://www.lumis.com.br/lumisportal/xsd/doui"        

                                               xmlns:control="http://www.lumis.com.br/douicontrols"

                                               xmlns:logic="http://www.lumis.com.br/lumisportal/xsd/doui/logic">

 

       <service id="myServiceId">

               ...

       </service>

       <interfaces>

               ...

         <interface id="myInterfaceId">

                       <logic:choose>

                               <logic:when test="empty param.lumItemId">

                                       ...

                               </logic:when>

                         <logic:when test="param.myParameter eq 'value1'">

                                 ...

                               </logic:when>

                         <logic:when test="param.myParameter eq 'value2'">

                                 ...

                               </logic:when>

                               <logic:otherwise>

                                       ...

                               </logic:otherwise>

                       </logic:choose>

         </interface>

               ...

       </interfaces>

 

</doui:douiDefinition>


Lumis Portal 6.2.0.120405
Copyright © 2006–2012 Lumis EIP Tecnologia da Informação LTDA. Todos os direitos reservados.