如图,我想通过JSTL在页面上输出数据库中的成员信息,但是却出现了直接输出${person.name}的错误,添加了以下测试信息发现可以正常输出"Ciallo~",所以错误不在引用JSTL的地方
<c:out value="Ciallo~"/>
如果不存在JSTL引用错误,直接输出${person.name},只可能是EL表达式内容被直接当成字符串输出
经过查阅资料提炼到以下信息
isELIgnored="false"默认为真。
如果该语句为真,那么JSP中的表达式被当成字符串处理
需要添加这条语句让JSP中JSTL表达式正确显示,不被当成普通的字符串
所以只需要在引用JSTL的地方添加如下信息(第三行)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page isELIgnored="false"%>
即可得到正确输出
JSP源码如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page isELIgnored="false"%>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>phonebook</title>
</head>
<body>
<c:out value="Ciallo~"/>
<br>
<table border="1" width="80%">
<tr align="center">
<td>序号</td>
<td>姓名</td>
<td>地址</td>
<td>性别</td>
<td>年龄</td>
<td>电话</td>
<td>操作</td>
</tr>
<c:forEach items="${people}" var="person" varStatus="status">
<tr align="center">
<td><%=++num%></td>
<td>${person.name}</td>
<td>${person.address}</td>
<td>${person.sex}</td>
<td>${person.age}</td>
<td>${person.telNum}</td>
<td><a href="#">修改</a> <a href="#">删除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
最后吐槽一下,我真是铸币啊,怎么这么菜啊.....
EL表达式没好好学了属于是QwQ