Somatória na JSP

5 respostas
L

Estou querendo somar o conteúdo da minha bean <bean:write name="horas" property="soma"/>.
Como eu faço isto diretamente na jsp?
Tentei colocar um "somador" usando <% %>, porem não deu certo.
Como eu faço de outra maneira?

&lt;tr&gt; 
      &lt;td&gt;<B>NOME</B>&lt;/td&gt; 
      &lt;td&gt;<B>HORAS</B>&lt;/td&gt; 
   &lt;/tr&gt;
  
     &lt;logic:iterate name="listando" id="horas"&gt; 
     &lt;tr&gt; 
      &lt;td&gt;&lt;bean:write name="horas" property="nome"/&gt;&lt;/td&gt; 
      &lt;td&gt;&lt;bean:write name="horas" property="horas"/&gt;&lt;/td&gt; 
     &lt;/tr&gt;
     &lt;/logic:iterate&gt; <br> 
      <br> 
   
    &lt;tr&gt;
      &lt;td&gt;<B>Somatória</B>&lt;/td&gt; 
         &lt;td&gt;<B>[b]AQUI VAI A SOMATóRIA deste valor
                   &lt;bean:write name="horas" property="soma"/&gt;[/b]
                 </B>
         &lt;/td&gt; 
   &lt;/tr&gt;

5 Respostas

danieldestro

Somar que conteúdo?
Sua dúvida ficou confusa.

kuchma

Voce esta exibindo valores e no final quer exibir um total, certo?

&lt;% int soma = 0; %&gt;

   &lt;tr&gt; 
      &lt;td&gt;<B>NOME</B>&lt;/td&gt; 
      &lt;td&gt;<B>HORAS</B>&lt;/td&gt; 
   &lt;/tr&gt;
  
     &lt;logic:iterate name="listando" id="horas"&gt; 
     &lt;tr&gt; 
      &lt;td&gt;&lt;bean:write name="horas" property="nome"/&gt;&lt;/td&gt; 
      &lt;td&gt;&lt;bean:write name="horas" property="horas"/&gt;&lt;/td&gt; 
     &lt;/tr&gt;
     &lt;/logic:iterate&gt; <br> 
      <br> 
   
    &lt;% soma += horas.getHoras(); %&gt;

    &lt;tr&gt;
      &lt;td&gt;<B>Somatória</B>&lt;/td&gt; 
         &lt;td&gt;<B>&lt;%= soma %&gt;</B>
         &lt;/td&gt; 
   &lt;/tr&gt;

Tem que ver em que escopo esta o bean e recuperar uma referencia para ele na variavel “hora” (ou usar direto).

Outras possibilidades seriam: criar um objeto que fizesse isso e entao utiliza-lo ou entao criar uma custom tag.

Marcio Kuchma

danieldestro

Ou então criar um método no seu bean que retornasse a somatória.

L

É…é somar o valor das horas…

Então…
Fiz este teste com a usando <% h.getHoras();%> e não deu certo pois o valor não irá entrar no “laço”. Permanecerá com o último valor que foi mandando no setHoras.
Colokando dentro do ITERATE, dá erro…
To tentando fazer na minha bean um incrementador…mas mesmo assim valew a vcs por tentaram me ajudar.
VALEW!!

kuchma

Leo:
É…é somar o valor das horas…

Então…
Fiz este teste com a usando <% h.getHoras();%> e não deu certo pois o valor não irá entrar no “laço”. Permanecerá com o último valor que foi mandando no setHoras.
Colokando dentro do ITERATE, dá erro…

Oooops - era pra ficar dentro do iterate mesmo. Foi mal. Que erro que da? De repente eh soh declarar alguma variavel…

Em todo caso a ideia de colocar num metodo externo eh melhor. :smiley:

Marcio Kuchma

Criado 10 de dezembro de 2004
Ultima resposta 10 de dez. de 2004
Respostas 5
Participantes 3