如何修复运行代码时出现的PWC6212: equal symbol expected错误?
修复JSTL代码中的PWC6212错误与标签库依赖问题
首先解决你碰到的PWC6212: equal symbol expected错误:
这个报错完全是因为<c:set>标签的语法写错了——你多写了一个多余的set属性。原代码里的<c:set set var="un" value="${username}"/>不符合JSTL标签规范,正确的写法只需要保留var(定义变量名)和value(变量值)两个属性,修正后应该是:
<c:set var="un" value="${username}"/>
再说说移除@taglib标记后只显示<c:otherwise>块内容的问题:
JSTL的<c:choose>、<c:when>这些标签不是JSP的原生标签,必须通过taglib指令引入对应的核心标签库,才能让服务器识别并执行这些标签的逻辑判断。如果删掉顶部的taglib标记,服务器会把这些JSTL标签当成普通的文本直接跳过,根本不会执行<c:when>里的非空判断,自然就默认走了<c:otherwise>的分支。
完整修复后的代码示例
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="un" value="${username}"/> <c:choose> <c:when test="${not empty un}"> <div class="header"> <img src="../src/img/cd2.png"> <div class="header-right"> <a href="../learning-material.html">View Material</a> <a href="../SummativeQuestionHome.html">Summative</a> <a href="../">Formative</a> <a href="../View-Performance.html">View Performance</a> <a href="../">Manage Profile</a> <a class="active" href="logoutServlet">Logout</a> </div> </div> </c:when> <c:otherwise> <div class="header"> <img src="../src/img/cd2.png"> <div class="header-right"> <a href="logoutServlet">Logout</a> <a class="active" href="../loginpage.jsp">Login</a> </div> </div> </c:otherwise> </c:choose>
另外给你个小优化建议:判断变量是否有效,用${not empty un}比${!un.equals(null)}更稳妥——它会同时检查变量是否为null、是否为空字符串,能避免潜在的空指针异常。
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

