如何使用JSTL SQL标签 [英] How to use JSTL sql tag

查看:53
本文介绍了如何使用JSTL SQL标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

<sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/cloud" user="root"  password="root"
scope="session" /> 

<sql:query var="qryProvider" >
    SELECT * FROM `provider`;
</sql:query>

<table>
    <c:forEach var="row" items="${qryProvider.rows}">
        <tr>
            <td>${row.display_name}</td>

        </tr>
    </c:forEach>
</table>

我遇到以下错误:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /testJSTL.jsp at line 8

5: url="jdbc:mysql://localhost:3306/cloud" user="root"  password="root"
6: scope="session" /> 
7:  
8: <sql:query var="qryProvider" >
9:     SELECT * FROM `provider`;
10: </sql:query>
11:  


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.lang.NullPointerException"
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
    org.apache.jsp.testJSTL_jsp._jspService(testJSTL_jsp.java:94)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

我尝试遵循此教程,但是如果我写的话,它会给我一个错误

I tried to follow this tut, but it gives me an error if I write

<sql:query var="qryProvider" dataSource="${dataSource}" >

我对此很陌生,有人可以向我指出正确的方向吗?

I'm new to this, could someone point me in the right direction?

推荐答案

我的建议是完全忘记<sql>标记,并使所有数据库操作都使用纯Java(在servlet或您喜欢的操作中) MVC框架).该Servlet将构建一个bean实例列表,以供您的JSP显示.使用RequestDispatcher将请求从servlet调度到JSP.

My advice would be to forget about the <sql> tags completely, and to make all your database operations in plain Java (in a servlet or action of your preferred MVC framework). This servlet would build a list of bean instances, ready to be displayed by your JSP. Use RequestDispatcher to dispatch the request to the JSP from the servlet.

即使 Java EE官方教程说:

用于访问表7-7中列出的数据库的JSTL SQL标记为 专为快速原型设计和简单应用而设计.用于生产 应用程序,数据库操作通常封装在 JavaBeans组件.

The JSTL SQL tags for accessing databases listed in Table 7-7 are designed for quick prototyping and simple applications. For production applications, database operations are normally encapsulated in JavaBeans components.

这篇关于如何使用JSTL SQL标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆