Struts javascript css

Olá, tenho um tabela criada com struts usando logic:iterate, o codigo segue abaixo:

<logic:iterate name="ManterPerfil" property="listaPerfil" id="ManterPerfil2"> 
					<tr id="linha" class="tableRowEven" >
						<td width="30" align="center"><html:checkbox property="listaPerfilSelecionado"  value="perfil1" onclick="javascript:enableCheckbox();"/></td>
						<td width="809" ><html:link styleClass="linkCell" page="/web/seguranca/manterPerfil/detalharPerfil.jsp" ><bean:write name="ManterPerfil2" property="nome" /></html:link></td>
					</tr>
</logic:iterate>

Gostaria de fazer com que as linhas impares fiquem azuis(class=“tableRowEven”) e as linhas pares(class=“tableRowOdd”) fiquem brancas. Os estilos CSS eu ja tenho que são “tableRowEven” e “tableRowOdd”.

Como faço pra fazer as linhas cor sim cor não dentro do logic iterate?

Bom dia.

Você pode utilizar o atributo indexId do iterator. Este atributo retorna o número correspondente ao item iterado (como uma lista numerada). Desta forma você pode realizar um módulo (%), mais ou menos assim: i % 2 != 0.
De acordo com a resposta você utiliza a classe CSS que desejar.
Não tenho certeza se esta é a melhor forma, porém é uma que funciona.

Abs!

Ou vc pode utilizar o <logic:equal value=""></logic:equal> e verificar o valor que retornar como se fosse um if.

eu tinha feito uma funcao javascript que me retornava o estilo, entao em

mas NÃO FUNCIONA, naum sei pq naum chama o javascript;

ainda naum consegui resolver, mesmo com seus posts

Você precisa utilizar logic:equal, porém antes é necessário o tal do indexID operado por % 2. Isto porque você precisa saber se é uma linha ímpar ou par. O JavaScript é dispensável. Você gerará o HTML já com as classes devidamente definidas, economizando assim processamento no cliente.

Abs!

kra desculpe minha ignorancia em java web, mas sera que voce me mostrar um exemplo?

Claro!

&lt;logic:iterate ... indexId="i"&gt; &lt;bean:define id="iMod2" value="&lt;%=i%2%&gt;"&gt; &lt;tr class="&lt;logic:equal name="iMod2" value="0"&gt;ESCURA&lt;/logic:equal&gt;&lt;logic:notEqual name="iMod2" value="0"&gt;CLARA&lt;/logic:notEqual&gt;&quot;&gt; &lt;td&gt;bla bla bla&lt;/td&gt; &lt;/tr&gt; &lt;/logic:iterate&gt;

Eu não testei o código, mas é algo deste tipo.

Abs!

hhahaa kra ta dando uma exceção dizendo que o operador % não é aplicado a Integer ou int hadufad
é aplicado a que entaum? rs
essa eh nova pra mim!!

tive que fazer a coisa que eu mais odeio fazer, GAMBIARRA!!

tive que criar um contador para contar as linhas ao inves de usar o indexId do struts.


<logic:notEmpty name="ManterPerfil">
				<% int i=0; %>
				<logic:iterate  name="ManterPerfil" property="listaPerfil" id="ManterPerfil2">
				<% i++; %>
				<bean:define id="iMod2" value="<%=(i%2) +"" %>"/>  
					<tr class="<logic:equal name="iMod2" value='0'>tableRowEven</logic:equal>
						<logic:notEqual name="iMod2" value='0'>tableRowOdd</logic:notEqual>">
						<td width="30" align="center"><html:checkbox property="listaPerfilSelecionado"  value="perfil1" onclick="javascript:enableCheckbox();"/></td>
						<td width="809" ><html:link styleClass="linkCell" page="/web/seguranca/manterPerfil/detalharPerfil.jsp" ><bean:write name="ManterPerfil2" property="nome" /></html:link></td>
					</tr>
				</logic:iterate>
					
			</logic:notEmpty>

Putz, por essa eu não esperava. É que realmente não dá para eu simular este teste, senão eu te ajudava melhor. Posta isso como dúvida num outro tópico, talvez alguém possa te ajudar melhor, ou pelo menos resolver este mistério!

Abs!

Cara sei que ja faz tempo mas vou falar para futuras buscas ao topico.

Fiz o teste e é só vc alterar o “bean:define” dessa forma:

	<logic:iterate  name="ManterPerfil" property="listaPerfil" id="ManterPerfil2">
	      <bean:define id="iMod2" value="${i%2}"/>  
					.....
	</logic:iterate>

Espero ter ajudado
Abração

giovaniufop ,

Valeu pela gambis, foi o único jeito q rolou aqui…auhhuauhauha

[]´s!!!