运行代码时出现PWC6212: equal symbol expected错误,求修复方案
修复方案:解决PWC6212语法错误与JSTL标签失效问题
1. 快速解决PWC6212错误
你碰到的PWC6212: equal symbol expected错误,根源是<c:set>标签的语法写错了——多写了一个多余的set属性!
原错误代码片段:
<c:set set var="un" value="${username}"/>
正确的<c:set>标签只需要var(定义变量名)和value(变量值)两个核心属性,修复后应该是:
<c:set var="un" value="${username}"/>
这个多余的set会让JSP解析器无法识别标签结构,直接抛出语法错误,删掉它就能解决第一个问题。
2. 解释移除@taglib指令后仅显示<c:otherwise>内容的问题
这是完全正常的现象,因为JSTL标签必须依赖taglib指令才能被JSP容器识别。如果你移除了顶部的<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>指令,<c:choose>、<c:when>、<c:set>这些标签会被当成普通字符串文本,完全不会执行条件判断逻辑。
此时JSP只会渲染所有普通HTML内容,<c:otherwise>里的头部代码是纯HTML,自然会直接显示;而<c:when>里的内容因为被包裹在未被解析的<c:when>标签里,不会被渲染出来。所以必须保留这个taglib指令,才能让JSTL标签正常工作,实现条件渲染的逻辑。
完整修复后的代码(含优化建议)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="un" value="${username}"/> <c:choose> <!-- 优化:用JSTL自带的empty判断更安全,避免null调用equals的空指针异常 --> <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>
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

