Definindo novas variáveis através do <bean:define>

1 resposta
E

Senhores

Primeiramente olá para todos, me cadastrei no site hoje, e espero não só obter ajuda, mas poder ajudar a todos.

Mas hoje é para tirar uma dúvida.

Seguinte: Estou desenvolvendo um sistema usando Struts para gestão de desempenho, criei um objeto Details, onde armazeno os dados das avaliação. Não sei se fui claro, mas vamos continuar.

Na hora da exibição eu criei uma página q lê este collection através da tag <bean:iterate> e mando escrever com <bean:write>. Até ai funciona bem. O problema que encontrei é o seguinte. No final desta página eu coloco um resumo destes detalhes, ou seja exibo somente os valor da média.

A dúvida então é a seguinte, teria com eu armazenar em uma variável o valor que o Bean me passou para poder usar em outro ponto da página sem ter que usar novamente o <bean:iterate>?

Segue exemplo do que estou fazendo

&lt;logic:present name="ViewDataDetails1" scope="session"&gt;
    &lt;logic:iterate name="ViewDataDetails1" id="detail"&gt;
         Aval 1: &lt;bean:write name="detail" property="aval1"/&gt;
         Peso 1: &lt;bean:write name="detail" property="peso1"/&gt;
         Media: &lt;bean:write name="detail" property="media"/&gt;
    &lt;/logic:iterate&gt;
&lt;/logic:present&gt;
&lt;logic:present name="ViewDataDetails2" scope="session"&gt;
    &lt;logic:iterate name="ViewDataDetails1" id="detail"&gt;
         Aval 1: &lt;bean:write name="detail" property="aval1"/&gt;
         Peso 1: &lt;bean:write name="detail" property="peso1"/&gt;
         Media: &lt;bean:write name="detail" property="media"/&gt;
    &lt;/logic:iterate&gt;
&lt;/logic:present&gt;

Eu estava lendo que com <bean:define> eu conseguiria resolver, mas não consegui entender a definição desta tagLig.

Se alguém puder me ajudar…
Abraços e obrigado… :smiley:

1 Resposta

E

Bem gente

Acho que descobri…

Seguinte vamos as explicações:

Para definir uma nova variável usando o < bean:define >, vamos usar o meu exemplo abaixo:

<logic:present name="ViewDataDetails1" scope="session">
     <logic:iterate name="ViewDataDetails1" id="detail">
          Aval 1: <bean:write name="detail" property="aval1"/>
          Peso 1: <bean:write name="detail" property="peso1"/>
          Media: <bean:write name="detail" property="media"/>
     </logic:iterate>
 </logic:present>
 <logic:present name="ViewDataDetails2" scope="session">
     <logic:iterate name="ViewDataDetails1" id="detail">
          Aval 1: <bean:write name="detail" property="aval1"/>
          Peso 1: <bean:write name="detail" property="peso1"/>
          Media: <bean:write name="detail" property="media"/>
     </logic:iterate>
 </logic:present>

Se eu quisesse usar novamente a variável media novamente eu teria que fazer da seguinte maneira:

<bean:define id="media1" name="detail" property="media" toScope="session"/>

E para usá-la em outro ponto eu chamaria da seguinte maneira:

<logic:present name="media1" scope="session"><bean:write name="media1"></logic:present>

Sendo o código ficaria assim:

<html:html locale="true">
...
 <logic:present name="ViewDataDetails1" scope="session">
     <logic:iterate name="ViewDataDetails1" id="detail">
          Aval 1: <bean:write name="detail" property="aval1"/>
          Peso 1: <bean:write name="detail" property="peso1"/>
          Media: <bean:write name="detail" property="media"/>
         <bean:define id="media1" name="detail" property="media" toScope="session"/>
     </logic:iterate>
 </logic:present>
 <logic:present name="ViewDataDetails2" scope="session">
     <logic:iterate name="ViewDataDetails1" id="detail">
          Aval 1: <bean:write name="detail" property="aval1"/>
          Peso 1: <bean:write name="detail" property="peso1"/>
          Media: <bean:write name="detail" property="media"/>
         <bean:define id="media2" name="detail" property="media" toScope="session"/>
     </logic:iterate>
 </logic:present>
...
<!-- outro ponto do body-->
<h1> Médias </h1>
<p>Média 1: </p><logic:present name="media1" scope="session"><bean:write name="media1"></logic:present>
<br>
<p>Média 2: </p><logic:present name="media2" scope="session"><bean:write name="media2"></logic:present>

...
</html:html>

Bem obrigado por aqueles que pelo menos olharam minha dúvida…

Criado 30 de março de 2005
Ultima resposta 30 de mar. de 2005
Respostas 1
Participantes 1