JSTL

时间:2014-02-18 07:40:19

标签: jsp jdbc jstl derby

下面提到的是我的 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应用程序也很有用)

1 个答案:

答案 0 :(得分:4)

您使用的是JSTL 1.0的URI,它不处理表达式语言。

将您的JSTL URI更正为:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

有关详细信息,请参阅jstl tag faq