<c:if> tag is not working at all. It includes a body in any case, either if "value" attribute contains an expression that evaluates to false or contains no valid expression at all. I have tested with the latest nighty build and some previuos versions.
Are you sure you're including a <%@ taglib %> directive, so that <c:if> is actually treated as an action and not simply template text? That's just a guess, but the directive is a common thing to forget. If the problem persists for you, please let me know more about your environment; nobody else has had any trouble with <c:if>. Hope that helps.
yes I am sure, other <c:xxx> tags are working well. I use Resin 2.0.5 under Red Hat linux 7.2 (kernel 2.4.18-0.1), Sun JDK 1.3.1_02. For example, let's take If.jsp from standard-examples and modify it as follows: <%@ taglib prefix="c" uri="http://java.sun.com/jstl/ea/core" %> <html> <head> <title>JSTL: Conditional Support -- Simple Conditional Execution Example</title> </head> <body bgcolor="#FFFFFF"> <h3>Simple Conditional Execution</h3> <h4>Customers living in the USA</h4> <c:forEach var="customer" items="${customers}"> <c:if test="${#%^}"> <c:out value="${customer}"/><br> </c:if> </c:forEach> </body> </html> It does not report any error and outputs a body. So it does if I change to <c:if test="${1==2}">. But just to make sure everything else is working, after changing a line just above to <c:forEach var="customer" items="${#%^}"> i get Unable to parse custom action attribute "items" with value "${#$%}": ... Hence seems <c:if> is not parsing its "test" attribute at all. I can try to debug with the sources....
Ok i've tried with tomcat 4.0.2-b2 and it works fine... Seems we have some kind of incompatibility issue... But Resin is proven to conform good to the servlet specification. I have never had problems with jakarta Struts for example.
And also under Resin 2.0.5 <c:forEach> only executes its body once regardless of number of items in the collection. I think there's a work to do with compatibility...