JSTL como saber se um objeto pertence a uma lista

OLá, galera!
Tenho o seguinte problema: Tenho um objeto bar e que saber se o mesmo se encontra na lista foo. Eu sei que eu poderia fazer algo como “foo.contains(bar)”, mas estou num JSP e não gostaria de utilziar um scriplet para isso.
Então vai a pergunta: Como saber se um objeto pertence a uma lista utilizando JSTL?
Ou, ainda, como executar um método num objeto por JSTL (isso resolveria o problema de forma mais genérica)?
Eu recebi algumas dicas dos colegas de trabalho, mas achei as técnicas espartanas demais. A saber:
-Fazer um foreach comparando cada item de foo com bar.
-Criar um TagSupport par isto.
Se alguém souber responder eu agradeço!!!
Se não souber eu agraço do mesmo jeito!!! :stuck_out_tongue:
E me perdoem se a pergunta é estúpida demais!
Shalom!!!

Não tem como via JSTL padrão. Teria ou que fazer como seu amigo falou, com forEach ou criar uma Custom Tag que faria isso para você.

Ok, vocês Venceram!
E, para provar meu agradecimento, aí vai o source da brincadeira como contribuição:

[code]
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package br.gov.sus.projetosus.tagsupport;

import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
*

  • @author mluciano
    */
    public class ContainsTagSupport extends TagSupport{
    private Object anObject;
    private List aList;
    private String textIfContains;

    @Override
    public int doStartTag() throws JspException{
    if(this.getaList() != null && this.getaList().contains(getAnObject())){
    try {
    pageContext.getOut().write(this.getTextIfContains());
    } catch (IOException ex) {
    Logger.getLogger(ContainsTagSupport.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    return EVAL_BODY_INCLUDE;
    }

    /**

    • @return the anObject
      */
      public Object getAnObject() {
      return anObject;
      }

    /**

    • @param anObject the anObject to set
      */
      public void setAnObject(Object anObject) {
      this.anObject = anObject;
      }

    /**

    • @return the aList
      */
      public List getaList() {
      return aList;
      }

    /**

    • @param aList the aList to set
      */
      public void setaList(List aList) {
      this.aList = aList;
      }

    /**

    • @return the textIfContains
      */
      public String getTextIfContains() {
      return textIfContains;
      }

    /**

    • @param textIfContains the textIfContains to set
      */
      public void setTextIfContains(String textIfContains) {
      this.textIfContains = textIfContains;
      }
      }[/code]
      E a definição no tld, para facilitar a vida da galera:

  <tag>
      <description>Imprime um texto se um Objeto é constante de uma Lista</description>
      <name>contains</name>
      <tag-class>br.gov.sus.projetosus.tagsupport.ContainsTagSupport</tag-class>
      <body-content>JSP</body-content>
      <attribute>
          <name>aList</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <type>java.util.List</type>
      </attribute>
            <attribute>
          <name>anObject</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <type>java.lang.Object</type>
      </attribute>
      <attribute>
          <name>textIfContains</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <type>java.lang.String</type>
      </attribute>
  </tag>

Valeu!!! Obrigado pela rápida resposta!!!
Shalom!!!

Mas que isto é espartano é! :stuck_out_tongue:

Dá uma olhada em SimpleTag…
como o nome diz…é mais simples que o Classic Tag, que vc utilizou.

Obrigado pela orientação!
Vou dar uma olhada e qualquer coisa eu posto pelaí de novo!!!
Shalom!