关于forEach的一点问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:45:38
我用forEach来循环显示数据库语句时,情况如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<c:forEach items="${act}" var="link">
<tr><td> ${link.actName}</td>
</tr>
</c:forEach>

数据库中无内容时页面显示空白,但往数据库内插入3条语句时,它显示如下:${link.linkName} ${link.linkName} ${link.linkName} 我确定了好多遍class里面的变量名就是叫这个。
哪位大哥有明白情况的,还请高知小弟
现在问题解决了,只是不知道原因。我用<c:out>命令输出,可以得到正常结果,哎。

这个是jstl版本对el表达式的支持问题,JSTL 标签库由标签库和EL表达式两个部分组成。 EL 在 JSTL 1.0 规范中被引入,而该表达式必须配合 JSTL 的标签库才能得到需要的结果。也就是说你直接用${}是不会显示正确结果的,从你引入的标签库http://java.sun.com/jstl/core可以知道这个是jstl 1.0的版本,所以EL需要<c:out>中使用。
在 JSTL 1.1 规范中, JSP2.0 容器已经能够独立的理解任何 EL 表达式。 EL 可以独立出现在 JSP 页面的任何角落。而导入的包是http://java.sun.com/jsp/jstl/core,这样就可以直接用el表达式了

<c:forEach items="${act}" var="link">
<tr><td><c:out value="${link.actName}"/>td>
</tr>
</c:forEach>

像EL(${})这种写法,如果写在"<td>"就会被直接识别成HTML的表示项~

${link.linkName} 你没有设置链接 所以没有显示链接名字
你上CSDN 的C#板块问问 那里全是高手

<c:out>命令输出能用就行

用<c:out吧,比较保险!

另外,请确定你的所有字符是在半角下输入

看看你的$是全角的还是半角的。要是全角的话就不是el了,就会输出上边的东西

发错区了,再到java区发一个把这里的链接贴上