目录
错误

错误代码
<c:forEach var="trueName" items="<%=(List<String>)session.getAttribute("teacherTrueNameList")%>">
<option value="${trueName}">${trueName}</option>
</c:forEach>
错误原因
由于tomcat版本的原因,对双引号的处理产生的问题。
这里会报这种错误的原因就是双引号里面嵌套了双引号。
解决
就是处理双引号的问题啊。
正确代码一
将最外面的双引号改为单引号。
<c:forEach var="trueName" items='<%=(List<String>)session.getAttribute("teacherTrueNameList")%>'>
<option value="${trueName}">${trueName}</option>
</c:forEach>
正确代码二
将双引号的表达式另写,然后用一个变量替代。
<%
List<String> list=(List<String>)session.getAttribute("teacherTrueNameList");
%>
<c:forEach var="trueName" items="<%=list%>">
<option value="${trueName}">${trueName}</option>
</c:forEach>
正确代码三
使用"\"转义,编辑器会报错但是不影响运行结果,如:

<c:forEach var="trueName" items="<%=(List<String>)session.getAttribute(\"teacherTrueNameList\")%>">
<option value="${trueName}">${trueName}</option>
</c:forEach>
本文介绍了解决JSP页面中因Tomcat版本导致的双引号嵌套错误的方法,提供了三种有效解决方案,包括修改引号类型、使用变量替代和转义字符。

346

被折叠的 条评论
为什么被折叠?



