JSTL c:if标记似乎没有任何作用

问题描述

我有以下代码要从scriptlet切换:

    <% if (session.getAttribute("korisnik") == null) { %>
    <a href='login.jsp'>Ulogujte se</a>
    <a href='registracija.jsp'>Registrujte se</a>
    <% } %>

致el:

    <c:if test="${sessionScope.korisnik == null}">
    <a href='login.jsp'>Ulogujte se2</a>
    <a href='registracija.jsp'>Registrujte se2</a>
    </c:if>

scriptlet代码可以正常工作(如果用户再次登录,则可以隐藏登录注册页面,如果会话中有数据),但我听说这是一种不好的做法,因此尝试将其切换为EL,但是EL部分无效,并且我尝试了无数种变体(只是korisnik,具有会话范围,与0比较,等等)。

我确定我在这里遗漏了非常明显的东西,我们将不胜感激。

解决方法

记住要像这样导入taglib:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

然后这应该工作:

<c:if test="${sessionScope.korisnik == null}">
  <a href='login.jsp'>Ulogujte se2</a>
  <a href='registracija.jsp'>Registrujte se2</a>
</c:if>

确保taglib在<html>标签上方