目录
错误
错误代码
<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>