- - PR -
Actionの結果が正しく返ってきません?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-06-21 16:21
初めまして。
最近eclipseを使い始めたんですが、皆さんの投稿スレッドがとても参考になり 大変感謝しています。 今回データベースから情報を引き出し表示させるプログラムを作成したところ 一向にactionへの読み込みが去れずエラーが返ってきます解決方法をぜひ教えて下さい。 エラー文↓ HTTP Status 404 - /show_database.do. type Status report message /show_database.do. description The requested resource (/show_database.do.) is not available. コンパイルはエラーしていないので多分struts-config の書き方に問題があるんでしょうか? 以下struts-config↓ <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config (View Source for full doctype...)> - <struts-config> - <!-- ========= Data Souce Configuration ==========================--> - <!-- ========= Form Bean Definitions =============================--> - <form-beans> <form-bean name="showDatabaseForm" type="databaes.ShowDatabaseForm" /> </form-beans> - <!-- ========= Global Forward Definitions ========================--> - <!-- ========= Action Mapping Definitions ========================--> - <action-mappings> - <action path="/showDatabase" type="database.ShowDatabaseAction" name="showDatabaseForm" scope="request"> <forward name="success" path="/ShowDatabase.jsp" /> </action> </action-mappings> - <!-- ========== Message Resources Definitions ====================--> <message-resources parameter="ApplicationResources" /> - <!-- ========== Plug Ins Configuration ===========================--> </struts-config> 一応FormとActionも掲載します。 ShowDatabaseForm.java package database; import org.apache.struts.action.ActionForm; /** * @author Administrator * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ public class ShowDatabaseForm extends ActionForm{ private String year; private String subject; private String kind; private String keyword; public String getYear() return year; } public void setYear(String year){ this.year = year; } public String getSubject(){ return subject; } public void setSubject(String subject){ this.subject = subject; } public String getKind(){ return kind; } public void setKind(String kind){ this.kind = kind; } public String getKeyword(){ return keyword; } public void setKeyword(String keyword){ this.keyword = keyword; } } ShowDatabaseAction.java package database; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * @author Administrator * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ public final class ShowDataBaseAction extends Action { private Connection con; private Statement stmt; private ResultSet rs; public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { ShowDatabaseForm queryForm = (ShowDatabaseForm)form; String yaer = queryForm.getYear(); String subject = queryForm.getSubject(); String kind = queryForm.getKind(); String keyword = queryForm.getKeyword(); try { Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/forest?useUnicode=true&characterEncoding=Shift_JIS","forest","forest"); Statement stmt = con.createStatement(); String sql = "select * from MATERIAL "+yaer+" "+subject+" "+kind+" "; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ // 言語を取得 String ID = rs.getString("ID"); // メンバー名(学年)を取得 String gyear = rs.getString("YEAR"); // メンバー名(学年)を取得 String gsubject = rs.getString("SUBJECT"); // メンバー名(科目)を取得 String type = rs.getString("TYPE"); // メンバー名(種類)を取得 String url = rs.getString("URL"); // メンバー名(URL)を取得 String comment = rs.getString("TITLE"); // メンバー名(タイトル)を取得 String time = rs.getString("TIME"); // メンバー名(時間)を取得 String HTML = rs.getString("content"); // メンバー名(内容)を取得 } //データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } return(mapping.findForward("success")); } } 長い文になりましたがよろしくお願いします。 |
|
投稿日時: 2004-06-21 16:27
404ならweb.xmlを疑うべきではないですかね。
それよりもまず、最後のピリオドがとっても怪しく思えますが。 > /show_database.do. |
|
投稿日時: 2004-06-21 16:55
nilさんお早い返事ありがとうございます。
まずご指摘道理、最後のピリオドを消してみたところ、エラーの文が 全く変わってしまいました。 新エラー↓ HTTP Status 400 - Invalid path /showDatabase was requested -------------------------------------------------------------------------------- type Status report message Invalid path /showDatabase was requested description The request sent by the client was syntactically incorrect (Invalid path /showDatabase was requested). >404ならweb.xmlを疑うべきではないですかね。 大変若輩もので申し訳ないのですが 私の参考にしている書などでは、とりたてて web.xmlについて変更箇所などが書かれていなかったため 全て初期パラムになっています。 |
|
投稿日時: 2004-06-21 20:09
showDatabaseですかね? show_databaseですかね?
あと、type="databaes.ShowDatabaseForm" ってのがとっても気になるのですが・・・ |
|
投稿日時: 2004-06-22 19:54
アクセス先のURLが、
直接指定のhttp://xxxxxxxxxxxxx/showDatabase.do であるもしくは、 ← .do有 JSPのhtml:formのactionが action="/showDatabase" ← .doなし であれば(web.xmlの設定にもよりますが、Defaultだとすると)、 struts-configのactionのpathは、 action path="/showDatabase" type="database.ShowDatabaseAction" ですね。呼び出しのURLはなんですか?もしくは、HTML orJSPのformのaction には何が書いてあります? 最初の投稿では、 /show_database.do. で2回目は、 /showDatabase になってますが。。 |
1
