- - PR -
JSPで検索結果を表示する方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-15 12:27
raystarさん、返信ありがとうございます。
public Vector doSelect(String query) { if ( mConnection == null ){ return null; } try { // ステートメントの作成 Statement stmt = mConnection.createStatement(); // 問い合わせの実行 ResultSet rset = stmt.executeQuery(query) ; // 結果を返す return resultsetVector(rset); } catch ( SQLException e ) { System.out.println("エラー:" + e); e.printStackTrace(); } return null; } ----------------------------------------------------- private Vector resultsetVector(ResultSet rset) { if ( mConnection == null ){ return null; } Vector v = new Vector(); try { ResultSetMetaData meta = rset.getMetaData(); int cols = meta.getColumnCount(); while ( rset.next() ) { Hashtable hash = new Hashtable(); for(int i=1; i <= cols; i++) { if (rset.getObject(i) == null){ hash.put(meta.getColumnName(i), " "); } else{ hash.put(meta.getColumnName(i), rset.getObject(i)); } } v.add(hash); } } catch ( Exception e) { System.out.println("エラー:" + e); e.printStackTrace(); } return v; } のように、doSelectでSQLを実行し、resultsetVectorからVector型の結果を受け取ってJSPのresultに返すようにしています。 これではresultに結果は入らないでしょうか? | ||||
|
投稿日時: 2004-11-15 12:30
>これではresultに結果は入らないでしょうか?
やってみたらどうなりました? | ||||
|
投稿日時: 2004-11-15 12:36
これ戻していますけど、本当にうけとっていますか? ソースを見た限りでは、1つのオブジェクトをつくるために、 複数のメソッドを経由していますね。 どこで、予期せぬ結果になるのか、切り分けてみたらいかがでしょうか。 簡単な方法として System.out.println をいれてみたり、 アサートつかってみたり・・・・など。 | ||||
|
投稿日時: 2004-11-15 12:41
上のソースを見た限りではNULLがreturnされるところはここしかありません。
if ( mConnection == null ){ return null; } mConnectionはどこでインスタンスをゲットするんですか?きっとそこで 失敗したそうです。 | ||||
|
投稿日時: 2004-11-15 14:04
インギさん、raystarさん、影フリーさん、返信ありがとうございます。
色々切り分けて確認していったところ、プロパティファイルから値を呼び出せていないようで、mConnectionのところで失敗していました。 kouzoubean.getResult()メソッドで、下記のようにプロパティファイルから値をとってくるようにしているのですが、JSPから起動する際は、別の方法にしなければいけないのでしょうか。 プロパティファイルはクラスファイルと同じschemaSearchパッケージの中に入れてあります。 // 接続先のurl,user,passwordの読み込み try { Properties prop = new Properties(); // ファイルのロード prop.load(new FileInputStream("schemaSearch/setuzoku.properties")); // 値の読み込み driver = prop.getProperty("setuzoku.driver"); url = prop.getProperty("TUNE1.url"); user = prop.getProperty("TUNE1.user"); password = prop.getProperty("TUNE1.password"); } catch (Exception e) { e.printStackTrace(); } | ||||
|
投稿日時: 2004-11-15 14:14
「JSPで検索結果を表示する方法」とはすでに話題が異なっているような・・・。
芋づる式に質問をしないで、まず切り分けていってはいかがでしょうか? 新しく疑問ができてわからないようであれば焦点を明確にするため新しいスレッドとして起こした方がわかりやすいと思います。 | ||||
|
投稿日時: 2004-11-15 14:15
サブレットを作るしか有りません。
web.xmlの中に以下を設定してください。 --------------------------------- <servlet> <servlet-name>Start</servlet-name> <servlet-class>yourpackage.Start</servlet-class> <load-on-startup>1</load-on-startup> </servlet> ---------------------------------- そうするとウェブサーバを起動したらStartサブレットが自動起動します。 Star.javaソースは以下のとおりです。 ----------------------------------------------------- package yourpackage public class Start extends HttpServlet { public void init (ServletConfig config) throws ServletException { super.init(config); try { Properties prop = new Properties(); // ファイルのロード prop.load(new FileInputStream("schemaSearch/setuzoku.properties")); // 値の読み込み driver = prop.getProperty("setuzoku.driver"); url = prop.getProperty("TUNE1.url"); user = prop.getProperty("TUNE1.user"); password = prop.getProperty("TUNE1.password"); } catch (Exception e) { e.printStackTrace(); } } -------------------------------------------------------- ここで取得した情報はメモリ上のとこか(publicクラスまたは変数)で保存して使ってください。 | ||||
|
投稿日時: 2004-11-15 14:20
であれば、ResourceBundleを使うのがいいのではないですか?
ResourceBundle resources = ResourceBundle.getBundle("schemaSearch/setuzoku"); driver = resources.getString("setuzoku.driver"); … [ メッセージ編集済み 編集者: uk 編集日時 2004-11-15 14:21 ] |