jstl <c:if> tags not working in jsp file, getting error in tomcat 7
===

I have problem using jstl tag < c:if> in jsp file. basically I should make this as 2 questions although they are related.

The first question:
--------------

In my WEB-INF/lib, i put a jstl 1.2.jar

In my jsp file, I put this <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>. 

In my jsp file, I use the < c:if> to do something. if the condition is true, it will shows some special message

Basically the contents inside < c:if> is not working, because the message is not shown even the condition is true.

But if I changed to use the older namespace,  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>. others are not changed, then the if tag is working, because the message inside the if tag is shown.

My first question is why I have to use /jstl instead of /jsp/jstl in namespace. I am using jstl1.2.jar. so I should use the newer uri for 1.2. however, older uri works but not newer uir. this is my first question.

The second question:
------------
I ignore the first question I have, and just use /jstl as my namespace. When I deploy my web app into tomcat 7.X, it shows exceptions as the following:

> org.apache.jasper.JasperException: /login.jsp (line: 35, column: 10)
> According to TLD or attribute directive in tag file, attribute test
> does not accept any expressions 
> org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)

If I change the namespace from  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%> to  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>, it can deploy in tomcat but the functionality inside of < c:if> tag is not useful. 

So I am very confused what is wrong with these.

By the way, I am using servlet 2.5, jsp 2.0, jstl 1.2.

Thanks

Best Regards
