初学jsp,用<c:if test="${status=='login'}"判断时在地址栏上输入的status=login可是却显示的却不是当status=login的内容,而用<%=status%>输出的明明就是login,不知道是不是${ }的原因,求指导。。谢谢啦

解决方案 »

  1.   

    用jstl得看服务器支持的servlet版本是多少。
      

  2.   

    <%=status%>
    这是表达式
    取的是当前定义的java变量${ }这个是el表达式,他只能从作用域对象里面获取。
    建议你先用将status保存到request里面去。
      

  3.   

    应该是 <c:if test="${param.status=='login'}">
      

  4.   

    对。servlet2.4 up,jsp2.0 up 才支持el表达式。
      

  5.   

    <c:if test="${status eq 'login'}
    就解决了
      

  6.   

    我的servlet版本是2.4 ,jsp也是2.0的
      

  7.   

    我使用了你的方法,还是不行,这里还有一个类似的问题,不知道是否是同样的。部分代码:
    <c:forEach var="num" begin="1" end="100" step="2">
        <c:if test="${num==5}">
    1-100之间的奇数
        </c:if>
    </c:forEach>
    <c:forEach var="num" begin="1" end="100" step="2">
        <div>${ num }</div>
    </c:forEach>
    本来是循环当num=5时会输出“1-100之间的奇数”,但是却没有输出,而且后面循环输出的也不是数字而是“${num}",我觉得和之前是同一个问题,就是“${ }"不知道为什么不起作用
      

  8.   

    Lz是不是没有在页面引入tld文件;如<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
      

  9.   

    谢谢大家了。问题已经解决了。加上<%@ page isELIgnored="false"%>就行了 是不支持EL表达式的原因