- - PR -
sql:setDataSourceの例外の捕捉方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-04-19 01:18
Tomcat5.5.20+mySQL5.0+JSTL1.1.2の環境下で,sqlライブラリにある setDataSource タグの使い方についてお尋ねします。
setDataSourceタグで,DBのURLが違っていたり,ユーザー名/パスワードが間違っていたら,接続に失敗して例外が発生するか,var属性で指定した接続オブジェクトの変数が空になるか,どちらかだと思っていたのですが,どうもどちらでもないようです。「接続が確立できなかった」ことをアプリケーション側で知る方法はないのでしょうか?ご存知の方がいらっしゃったら,どうかご教示ください。 ----- (login.jsp) <%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <FORM action="login.jsp" method="POST"> <TABLE border=0> <TR><TD>接続先DBサーバ名:</TD> <TD><INPUT type="text" name="dbServer" value="${param.dbServer}"></TD></TR> <TR><TD>ログイン名:</TD> <TD><INPUT type="text" name="dbName" value="${param.dbName}"></TD></TR> <TR><TD>パスワード:</TD> <TD><INPUT type="password" name="dbPass" value="${param.dbPass}"></TD></TR> <TR><TD></TD> <TD align="right"><INPUT type="submit" name="login" value="ログイン"></TD></TR> </TABLE> </FORM> <c:if test="${!(empty param.login)}"> <sql:setDataSource var="conn" user="${param.dbName}" password="${param.dbPass}" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://${param.dbServer}/${param.dbName}" /> <c:choose> <c:when test="${!(empty conn)}"> <!-- 明らかに接続できないサーバー名やログイン名を入れても,connは空にならない --> <jsp:forward page="execSQL.jsp"> <jsp:param name="connCheck" value="${conn}"/> </jsp:forward> </c:when> <c:otherwise> <H3>データベースに接続できませんでした。</H3> </c:otherwise> </c:choose> </c:if> </body> </html> |
|
投稿日時: 2007-04-19 14:16
気になったのでドキュメントを当たって見ましたが…
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/sql/setDataSource.html 接続ができなかった際の挙動については言及が無いのですよね。 JSTLのカスタムタグのソースでも追いかけてみないと分からないかもしれません。 |
1