If com JSTL

2 respostas
L

Oi pessoal, estou tentando fazer um IF dentro do JSP usando JSTL…

<html:select name="funcaInserirBusiness" property="cod_afast">
<logic:iterate name="codafListaBusiness" id="obj">
<html:option value="${obj.cod}">${obj.cod} - ${obj.descricao}</html:option>
</logic:iterate>
</html:select>

mas eu tô querendo ver o tamanho de ${obj.descricao}, se for maior que 30 imprime ${obj.descricao}.substring(0, 30)+" …" senão imprime ${obj.descricao}

Como eu uso o <c:if test=""/> ?

2 Respostas

F

Vc vai precisar ter um metodo, na sua classe que retorna o tamanho da string.
aew vc faz…
Tipo assim:

public class MinhaClasee&#123;
private String descricao;
private int tamanhoDesc;

// Pojos&#40;get e set&#41; para o atrivuto descricao e para o tamanhoDesc.

No Jsp:

...
&lt;c&#58;if test="$&#123;obj.tamanhoDesc &gt;30"&gt;
// maior ki 30
&lt;/c&#58;if&gt; 

&lt;c&#58;if test="$&#123;obj.tamanhoDesc &lt; 30"&gt;
// menor ki 30
&lt;/c&#58;if&gt;

Mas soh lembrando que não é bom vc validar isso no jsp.
Na sua classe, vc podia fazer de um método pra retornar esse atributo, jah validado e formatado.
[=

Abraços.

L

Eu fiz de outro jeito cara… sem usar um método na classe, ó só: :cool:

&lt;td align="left"&gt;&lt;html&#58;select name="funcaInserirBusiness" property="catfgts"&gt;
&lt;logic&#58;iterate name="fgcatListaBusiness" id="obj"&gt;
&lt;html&#58;option value="$&#123;obj.codigo&#125;"&gt;$&#123;obj.codigo&#125; - &lt;c&#58;if test="$&#123;fn&#58;length&#40;obj.descricao&#41;&gt;40&#125;"&gt;$&#123;fn&#58;substring&#40;obj.descricao,0,40&#41;&#125; ...&lt;/c&#58;if&gt;
&lt;c&#58;if test="$&#123;fn&#58;length&#40;obj.descricao&#41;&lt;=40&#125;"&gt;$&#123;obj.descricao&#125;&lt;/c&#58;if&gt;
&lt;/html&#58;option&gt;
&lt;/logic&#58;iterate&gt;
&lt;/html&#58;select&gt;&lt;/td&gt;
Criado 6 de julho de 2006
Ultima resposta 14 de jul. de 2006
Respostas 2
Participantes 2