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=""/> ?
Vc vai precisar ter um metodo, na sua classe que retorna o tamanho da string.
aew vc faz…
Tipo assim:
public class MinhaClasee{
private String descricao;
private int tamanhoDesc;
// Pojos(get e set) para o atrivuto descricao e para o tamanhoDesc.
No Jsp:
...
<c:if test="${obj.tamanhoDesc >30">
// maior ki 30
</c:if>
<c:if test="${obj.tamanhoDesc < 30">
// menor ki 30
</c:if>
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.
Eu fiz de outro jeito cara… sem usar um método na classe, ó só:
<td align="left"><html:select name="funcaInserirBusiness" property="catfgts">
<logic:iterate name="fgcatListaBusiness" id="obj">
<html:option value="${obj.codigo}">${obj.codigo} - <c:if test="${fn:length(obj.descricao)>40}">${fn:substring(obj.descricao,0,40)} ...</c:if>
<c:if test="${fn:length(obj.descricao)<=40}">${obj.descricao}</c:if>
</html:option>
</logic:iterate>
</html:select></td>