I have followed the book example but there is an error showed up. Please give me the idea how to solve it. Thanks a lot.
Here is the coding:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
<sql:setDataSource var="datasource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/publish"
user="phirun" password="amazon" />
<c:if test="${param.title != null}">
<sql:update dataSource="${dataSource}">
INSERT INTO book (title,price) values(?,?)
<sql:param value="$(param.title)"/>
<sql:param value="$(param.price)"/>
</sql:update>
</c:if>
<sql:query var="books" dataSource="${datasource}">
select id,title,price from book
</sql:query>
<html>
<head>
<title> A first JSP database </title>
</head>
<body>
<form method="post">
<table border="1">
<tr>
<td> id </td>
<td> title </td>
<td> price </td>
</tr>
<c:forEach items="${books.rows}" var="row">
<tr>
<td> <c:out value="${row.id}" /> </td>
<td> <c:out value="${row.title}" /> </td>
<td> <c:out value="${row.price}" /> </td>
</tr>
</c:forEach>
<tr>
<td> </td>
<td> <input type="text" name="title" size="30" /> </td>
<td> <input type="text" name="price" size="5" /> </td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" value="Save" />
</td>
</tr>
</table>
</form>
</body>
</html>
This is the error which i got:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: The absolute uri: htt://java.sun.com/jstl/sql_rt cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jsp Error(DefaultErrorHandler.java:94)
at org.apache.jasper.compiler.ErrorDispatcher.dispatc h(ErrorDispatcher.java:365)
at org.apache.jasper.compiler.ErrorDispatcher.jspErro r(ErrorDispatcher.java:151)
at org.apache.jasper.compiler.TagLibraryInfoImpl.gene rateTLDLocation(TagLibraryInfoImpl.java:343)
at org.apache.jasper.compiler.TagLibraryInfoImpl.(Tag LibraryInfoImpl.java:170)
at org.apache.jasper.compiler.Parser.parseTaglibDirec tive(Parser.java:456)
at org.apache.jasper.compiler.Parser.parseDirective(P arser.java:517)
at org.apache.jasper.compiler.Parser.parseElements(Pa rser.java:1567)
at org.apache.jasper.compiler.Parser.parse(Parser.jav a:174)
at org.apache.jasper.compiler.ParserController.parse( ParserController.java:254)
at org.apache.jasper.compiler.ParserController.parse( ParserController.java:154)
at org.apache.jasper.compiler.ParserController.parse( ParserController.java:140)
at org.apache.jasper.compiler.Compiler.generateJava(C ompiler.java:250)
at org.apache.jasper.compiler.Compiler.compile(Compil er.java:458)
at org.apache.jasper.compiler.Compiler.compile(Compil er.java:444)
at org.apache.jasper.JspCompilationContext.compile(
Js pCompilationContext.java:603)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:300)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:293)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:286)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:974)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:205)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:974)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:177)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorDispatcherValve.in voke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:172)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:974)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:974)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:203)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:637)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:488)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:568)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:631)
at java.lang.Thread.run(Unknown Source)