Form em JSF

2 respostas
C

Bom dia,
No sistema em que trabalho, ao escolher no cambo box a opção Aereo, mostra os modelos de aeronave utilizados e assim por diante, para cada tipo de combo, os formularios mudam.
Queria entender melhor essa parte que está em meu código:

<h:panelGrid columns=“2” cellspacing=“2px” columnClasses=“align_right,align_left” rendered="#{!isTask or taskView.tabs[‘logistics’].fields[‘via’].rendered}">

<s:span><h:outputLabel value=“Via de Transporte”/><s:span styleClass=“required” rendered="#{isTask and taskView.tabs[‘logistics’].fields[‘via’].required}">*</s:span></s:span>

<s:decorate>

<h:selectOneMenu value="#{form.Order.transportTypeEnum}" required="#{isTask and taskView.tabs[‘logistics’].fields[‘via’].required}" disabled="#{isTask and taskView.tabs[‘logistics’].fields[‘via’].disabled or (s:hasRole(‘operational_user’)and (isTask==false)) }">

<s:selectItems value="#{provider.TransportTypeEnum.values}" var=“type” label="#{messages[type.name]}" noSelectionLabel=“Selecione”/>

<a4j:support event=“onchange” reRender=“transport” ajaxSingle=“true” eventsQueue=“queue”/>

<s:convertEnum/>

</h:selectOneMenu>

</s:decorate>

<rich:spacer width=“120px”/><s:span/>

</h:panelGrid>

Se alguém puder me ajudar…

2 Respostas

MiguelCP
<h:panelGrid columns="2" cellspacing="2px" columnClasses="align_right,align_left" rendered="#{!isTask or taskView.tabs['logistics'].fields['via'].rendered}"> // um panel onde existe duas colunas com espaco de 2 pixels      // onde é aplicado um style ou CSS que irar redenderizar um metodo boolean com os componentes do bean.

       <s:span><h:outputLabel value="Via de Transporte"/><s:span styleClass="required" rendered="#{isTask and taskView.tabs['logistics'].fields['via'].required}">*</s:span></s:span>
      <s:decorate>
/*um combo onde tem o valor do bean form que é obrigado o campo istask 
e taskView.tabs['logistics'].fields['via'].required on um desses campos está desabilitado e irá habilitar depois de uma ação, ou quando selecionado um campo onde tem o disable false */
   <h:selectOneMenu value="#{form.Order.transportTypeEnum}" required="#{isTask and                                 taskView.tabs['logistics'].fields['via'].required}" disabled="#{isTask and             taskView.tabs['logistics'].fields['via'].disabled or (s:hasRole('operational_user')and (isTask==false)) }">
// são itens dentro do menu ou comobobox onde o primeiro valor é Selecione(ou seja valor default)   
<s:selectItems value="#{provider.TransportTypeEnum.values}" var="type" label="#{messages[type.name]}"    noSelectionLabel="Selecione"/>
    // esse é a implementação do ajax onde na ação onchange onde automaticamente vai redenderizar algo que tenha o    //id transport  e ó submitara apenas o campo que foi mandando.
   <a4j:support event="onchange" reRender="transport" ajaxSingle="true" eventsQueue="queue"/>
   <s:convertEnum/> // convertendo o enum feito.
  </h:selectOneMenu>// acaba aqui o menu ou combobox
  </s:decorate>
  <rich:spacer width="120px"/><s:span/> // um espaco que fica em branco em 120 pixels
  </h:panelGrid> // acaba o panel

espero ter ajudado

C

MUITO OBRIGADO!!!

Criado 6 de maio de 2008
Ultima resposta 7 de mai. de 2008
Respostas 2
Participantes 2