質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

2264閲覧

(初心者)MVCを用いた画面表示の方法(画面遷移なし)

P4pCnyYaaLTBUsg

総合スコア1

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/07/12 13:48

MVCで画面遷移せずにデータの出力とエラーメッセージの表示をさせたいです。

ここに質問の内容を詳しく書いてください。
SQLサーバーのデータを検索し、画面遷移させずに表示させたいです。
エラーはないのですが、デバッグを行ったところデータがnullと表示されており、出力できていない状態だと思われます。
jsp画面でゲーム日~ゲーム日を検索すると、画面遷移せずにその画面上にテーブルで、ゲーム日、ゲーム内容、ゲーム開始時間、ゲーム終了時間を表示させたいです。
ソースコードを載せるので間違っている点などをご教授お願いします。(jspのソースは消してしまいありません。)
特にServletを見ていただきたいです。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Servlet、bean、DAO、ACtionのソースを載せます。

java

1 2Servletクラス 3 import文は省きます。 4 5@WebServlet("/HealthCheck") 6public class HealthCheck extends HttpServlet { 7 private static final long serialVersionUID = 1L; 8 9 protected void doGet(HttpServletRequest request, 10 HttpServletResponse response) 11 throws ServletException, IOException { 12doPost(request,response); 13} 14protected void doPost(HttpServletRequest request, 15 HttpServletResponse response) 16 throws ServletException, IOException { 17 18request.setCharacterEncoding("UTF-8"); 19String gameDay = request.getParameter("gameDay"); 20 21Game game = new Game(); 22 23 24 RequestDispatcher dispatcher = 25 request.getRequestDispatcher 26 ("/GameSearchView.jsp"); 27 dispatcher.forward(request, response); 28 } 29... 30javaBeanクラス 31 32 33public class Game { 34 private String gameDay; 35 private String gamePrice; 36 private String gameStartTime; 37 private String gameEndTime; 38 39public Game (){ 40 41public Game(String gameDay,String gamePrice,String gameStartTime,String gameEndTime); 42 43 public void setGameDay(String gameDay) { 44 this.gameDay = gameDay; 45 } 46 47 public String getGameDay() { 48 return gameDay; 49 } 50 51 public void setGamePrice(String gamePrice) { 52 this.gamePrice = gamePrice; 53 } 54 55 public String getGamePrice() { 56 return gamePrice; 57 } 58 59 public void setGameStartTime(String gameStartTime) { 60 this.gameStartTime = gameStartTime; 61 } 62 63 public double getGameStartTime() { 64 return gameStartTime; 65 } 66 67 public void setGameEndTime(String gameEndTime) { 68 this.bodyType = bodyType; 69 } 70 71 public String getGameEndTime() { 72 return gameEndTime; 73 } 74} 75 76... 77DAOクラス 78 79import文は省きます。 80 81public clas GameDAO{ 82 83private Connection con; 84 85public GameDAO(Connection con){ 86this.con = con; 87} 88 89public Game findGame(Strng gameDay) throws SQLException{ 90 91String dbURL = "ここは載せられません"; 92String user = ""; 93String pass = ""; 94con = DriverManagement.getConnection(dbURL,user,pass); 95 96String SQL = "select~"; 97 98ResultSet res = null; 99PreparedStatement stmt = null; 100Game game = null; 101 102try{ 103stmt = con.preparedStatement(sql); 104stmt = setString(1.gameDay); 105stmt = setString(2.gameDay); 106res = stmt.executeQuery(); 107 108if(res.next()){ 109game = new game(); 110game.setGameDay(gameDAy); 111game.setGamePrice(res.getString(2); 112game.setGameStartTime(res.getString(3); 113game.setGameEndTime(res.getString(4); 114} 115}finaly{ 116if(res != null) 117res.close(); 118if(stmt != null) 119stmt.close(); 120} 121return game; 122} 123} 124 125... 126Actionクラス 127 128import文は省きます。 129 130public class GameAction{ 131 132public String execute(HttpServletRequest.request){ 133String page = "GameSearchView.jsp" 134 135Stribg gameDay = request.getParameter("GAME_DAY"); 136 if(gameDay ! = null && gameDay.equals("")){ 137request.setAttribute("message","ゲーム日を入力してください"); 138return page; 139 140}else if (gameDay == null)){ 141request.setAttribute("message","ゲーム日が見つかりません"); 142return page; 143 144}else if (gameDay == " ")){ 145request.setAttribute("message","YYYY/MM/DDで入力してください"); 146return page; 147} 148 149request.setAttribute("game",game); 150 151page= "/GameSearchView.jsp" 152 153HttpSession session = request.getSesion(); 154コード

session.setAttribute("game",game);
return page;

}
}

...

試したこと

ネットや参考書を使っていますが、全然できません。かれこれ一週間以上取り組んでいます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サーブレットからJSPへ何も渡していないのが理由なのと、検索を行うDAOのfindGameの結果をサーブレットから呼び出せていません。

サーブレットで実装された内容を見た限りでは、doGetとdoPostが同じ内容なので、例えば以下のようになるのではないでしょうか。

java

1@WebServlet("/HealthCheck") 2public class HealthCheck extends HttpServlet { 3 protected void doPost(HttpServletRequest request, 4 HttpServletResponse response) 5 throws ServletException, IOException { 6 7 request.setCharacterEncoding("UTF-8"); 8 String gameDay = request.getParameter("gameDay"); 9 10 Game game = findGame(gameDay); 11 request.setAttribute("game", game); 12 13 RequestDispatcher dispatcher = 14 request.getRequestDispatcher 15 ("/GameSearchView.jsp"); 16 dispatcher.forward(request, response); 17 } 18}

findGameメソッドはDAOのfindGameを呼び出すよう実装してください。

投稿2020/07/12 14:08

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

P4pCnyYaaLTBUsg

2020/07/12 14:33

ご回答ありがとうございます。 参考にさせていただきます。 findGameメソッドはDAOのfindGameを呼び出すよう実装してくださいというのは、Game game = findGame(gameDay);の部分のことでよろしいでしょうか。 初心者のためわからないことが多く理解ができていないです。
A-pZ

2020/07/13 05:11

そのとおりです。 上記のとおり実装すると、findGameの箇所でコンパイルエラーが出るかと思いますので、何を実装しなければならないかわかるかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問