下面提到的是我的 jsp 页面jstl sql查询:
<sql:query sql="select postname,comments from root.posts" var="rs" dataSource="${ds}" />
<c:forEach var="row" items="${rs.rows}">
<tr>
<td align="center"><c:out value="${row.postname}"></c:out></td>
<td align="center"><c:out value="${row.comments}"></c:out></td>
</tr>
</c:forEach>
执行jsp后我的错误是:属性项不接受任何表达式
并且错误联系人显示在(28,3),即 - <c:foreach var="row" items="${rs.rows}"..
我的 context.xml 文件是:
<Context>
<Resource name="jdbc/myderby" auth="Container" type="javax.sql.DataSource"
username="root" password="root"
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:E:\workspaceDerby\DerbyNew\derbyDb;create=true"
maxActive="100" maxIdle="30" maxWait="10000" removeAbandoned="true" />
</Context>
我的 web.xml 文件:
<resource-ref>
<description>DB connection</description>
<res-ref-name>jdbc/myderby</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
其他信息:
- 在 Eclipse-indigo 中使用嵌入式Derby 作为数据库
- servlet版本3
- jstl.jar版本1.2,standard.jar版本1.1.2
- 使用 Html 5
- 从here获取教程(实际教程使用的是derby的服务器版本,我将其修改为Embedded Derby用于学习目的)
- 还使用MySql db成功创建了使用jsp,servlet,jstl的crud应用程序但不使用嵌入式Derby (因为嵌入式derby对我的独立应用程序和Web应用程序也很有用)
答案 0 :(得分:4)
您使用的是JSTL 1.0的URI,它不处理表达式语言。
将您的JSTL URI更正为:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
有关详细信息,请参阅jstl tag faq。