Problema ao comparar tag's <logic:iterate..> e <c:forEach...>

Pessoal estava comparando as tag’s do Struts x JSTL e me deparei com um problema, fiz um <logic:iterate…> e tudo funciono perfeitamente dai quiz testar o <c:forEach…> e o mardito não funciona…

  1. Adicionei os jstl.jar e standard.jar no meu /lib
  2. Coloquei no header da JSP <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
  3. Meu código:
&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
  &lt;tr&gt;
    &lt;td width="241"&gt;Razao social&lt;/td&gt;
    &lt;td width="259"&gt;CNPJ/CPF&lt;/td&gt;
  &lt;/tr&gt;
  &lt;c:forEach var="empresa" items="${listaEmpresas}"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;c:out value="${empresa.razaoSocial}"/&gt;&lt;/td&gt;
    &lt;td&gt;&lt;c:out value="${empresa.cnpj}"/&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;/c:forEach&gt;
&lt;/table&gt;
  1. Ele está mandando para o html o seguinte:

Razao social CNPJ/CPF
${empresa.razaoSocial} ${empresa.cnpj}

alguém sabe o que pode estar acontecendo?

É pq para usar EL, vc tem que está usando a especificação de servlets 2.4 e jsp 2.0. Verifique seu web.xml. O arquivo web.xml do 2.4 usa esquema ao invés de DTD.