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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

サーブレット

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

Q&A

0回答

570閲覧

サーブレットからjspに上手く値を渡せない

aaaajj

総合スコア5

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

サーブレット

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

0グッド

0クリップ

投稿2020/06/24 02:53

編集2020/06/24 05:04

詳細ボタンを押した県の情報を表示したい

todouhuken_search.jspでテーブル検索をした後
todouhuken_search.jspの詳細ボタンを押下時に、
県番号をサーブレットからtodouhuken_regist.jspに値を渡し押した県の詳細を表示させたいです。

todouhuken_search.jsp:検索画面
todouhuken_regist.jsp:登録画面
TodouhukenSearch_DetailsServlet:サーブレット

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

どこを押しても沖縄県になる

該当のソースコード

todouhuken_regist.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <script type="text/javascript"> function submitData(pAction) { document.forms[0].action = pAction; } </script> <html> <body> <form method="POST" action="'./TodouhukenSearch_Details'"> <div> 県番号 :<input type="text" name="kennBanngo"disabled="disabled" value="<c:out value='${kennBanngo}'/>" /><br /> </div> <div> 県名:<input type="text" name="kennmei" value="<c:out value='${kennmei}'/>" /> <br> </div> <div> 県庁所在地:<input type="text" name="kenncyouSyozaichi" value="<c:out value='${kenncyouSyozaichi}'/>" /> </div> <div> 地方 :<input type="text" name="chihou" value="<c:out value='${chihou}'/>" /><br /> <div> 人口 :<input type="text" name="jinnkou" value="<c:out value='${jinnkou}'/>" /><br /> </form> <form action="#" method="post"> <table> <tr> <td> <button class="btn" type="button" onclick="history.back()" style="position: absolute; left: px; bottom: 50px">一覧に戻る</button> </td> </div> <td><input type="submit" name="register" value="登録" style="position: absolute; left: 100px; bottom: 50px"></td> </tr> <c:if test="${kennBanngo >= 0}"> <input type="submit" name="register" value="更新" style="position: absolute; left: 100px; bottom: 50px"> <input type="submit" name="register" value="削除" style="position: absolute; left: 150px; bottom: 50px"> </c:if> </table> </div> </div> <footer> <div style="position: absolute; text-align: center; bottom: 0; width: 99%; height: 30px; background-color: #00ccff"> Copyright (c) training. All Rights Reserved.</div> </footer> </body> </html>

TodouhukenSearch_DetailsServlet

package training.controller.todouhuken.regist; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import training.dto.todouhuken.regist.TodouhukenRegistDto; import training.logic.todouhuken.regist.TodouhukenRegistLogic; @WebServlet("/TodouhukenSearch_Details") public class TodouhukenSearch_DetailsServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String kennBanngo = request.getParameter("kennBanngo"); TodouhukenRegistDto dto = new TodouhukenRegistDto(); dto.setkennBanngo(kennBanngo); TodouhukenRegistLogic logic = new TodouhukenRegistLogic(); logic.getTodouhukenList(dto); request.setAttribute("kennBanngo", dto.getSelectTodouhukenDetail().getKennBanngo()); request.setAttribute("kennmei", dto.getSelectTodouhukenDetail().getKennmei()); request.setAttribute("kenncyouSyozaichi", dto.getSelectTodouhukenDetail().getKenncyouSyozaichi()); request.setAttribute("chihou", dto.getSelectTodouhukenDetail().getChihou()); request.setAttribute("jinnkou", dto.getSelectTodouhukenDetail().getJinnkou()); request.setAttribute("selectTodouhukenDetail", dto.getSelectTodouhukenDetail()); response.setContentType("text/html; utf-8"); String forwardPath = "/WEB-INF/view/todouhuken_regist.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(forwardPath); dispatcher.forward(request, response); } }

todouhuken_search.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Language" content="ja"></meta> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/design_common.css" /> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/design_todouhuken_search.css" /> <script type="text/javascript"> function submitData(pAction) { document.forms[0].action = pAction; document.forms[0].submit(); } </script> </head> <body> <form method="post" action="?"> <div class="content"> <div class="searchCond"> <div class="condItem"> <div> 県名:<input type="text" name="kennmei" value="<c:out value='${kennmei}'/>" /> </div> <div> 地方:<input type="text" name="chihou" value="<c:out value='${chihou}'/>" /> </div> <div> 人口:<input type="text" name="jinnkouFrom" value="<c:out value='${jinnkouFrom}'/>" /> ~<input type="text" name="jinnkouTo" value="<c:out value='${jinnkouTo}'/>" /> </div> </div> </div> <div align="right" class="condButton"> <button type="submit" name="submitButtonName" value="search" onclick="submitData('./TodouhukenSearch_Search');">検索</button> <button type="submit" name="submitButtonName" value="add" onclick="submitData('./TodouhukenSearch_Add');">追加</button> </div> </div> <div style="height: 250px; width: 600px; overflow-y: scroll;"> <div class="resultList"> <table class="todouhukenTable" border="1"> <thead> <tr> <th class="kennbanngo" width="100">県番号</th> <th class="kennmei" width="150">県名</th> <th class="kenncyousyozaichi" width="150">県庁所在地</th> <th class="chihou" width="150">地方</th> <th class="jinnkou" width="150">人口</th> <th class="syousai" width="150">詳細</th> </tr> </thead> <tbody> <form method="post" action="?"> <c:forEach var="todouhuken" items="${todouhukenList}" varStatus="st"> <tr> <td class="kennbanngo">${todouhuken.kennBanngo}</td> <td class="kennmei">${todouhuken.kennmei}</td> <td class="kenncyousyozaichi">${todouhuken.kenncyouSyozaichi}</td> <td class="chihou">${todouhuken.chihou}</td> <td class="jinnkou">${todouhuken.jinnkou}</td> <td> <button type="submit" name="kennBanngo" value="${todouhuken.kennBanngo}" onclick="submitData('./TodouhukenSearch_Details');">詳細</button> </td> </tr> </c:forEach> </form> </tbody> </table> </div> </div> </form> </body> <form method="post" action="./MenuButtonClick"> <button type="submit" name="targetServletPath" value="/TodouhukenMenuInitServlet">メニューに戻る</button> </form> <div style="position: absolute; text-align: center; bottom: 0; width: 99%; height: 30px; background-color: #00ccff"> Copyright (c) training. All Rights Reserved.</div> </body> </html>

TodouhukenRegistLogic

package training.logic.todouhuken.regist; import training.common.dao.table.TodouhukenDao; import training.common.dto.table.TodouhukenDto; import training.common.logic.BaseLogic; import training.dto.todouhuken.regist.TodouhukenRegistDto; public class TodouhukenRegistLogic extends BaseLogic { public void getTodouhukenList(TodouhukenRegistDto dto) { try { getConnection(); TodouhukenDao todouhukenDao = new TodouhukenDao(con); TodouhukenDto todouhuken = todouhukenDao.selectTodouhukenDetail(dto.getkennBanngo()); dto.setSelectTodouhukenDetail(todouhuken); closeConnection(); } catch (Exception e) { e.printStackTrace(); } } }

TodouhukenRegistDto

package training.dto.todouhuken.regist; import java.io.Serializable; import training.common.dto.table.TodouhukenDto; public class TodouhukenRegistDto implements Serializable { private static final long serialVersionUID = 1L; private String kennmei = null; public String getKennmei() { return kennmei; } public void setKennmei(String kennmei) { this.kennmei = kennmei; } private String chihou = null; public String getChihou() { return chihou; } public void setChihou(String chihou) { this.chihou = chihou; } private String jinnkou = null; public String getJinnkou() { return jinnkou; } public void setJinnkou(String jinnkou) { this.jinnkou = jinnkou; } private String kennBanngo = null; public String getkennBanngo() { return kennBanngo; } public void setkennBanngo(String kennBanngo) { this.kennBanngo = kennBanngo; } private String kenncyouSyozaichi = null; public String getkenncyouSyozaichi() { return kenncyouSyozaichi; } public void setkenncyouSyozaichi(String kenncyouSyozaichi) { this.kenncyouSyozaichi = kenncyouSyozaichi; } private TodouhukenDto selectTodouhukenDetail = null; public TodouhukenDto getSelectTodouhukenDetail() { return selectTodouhukenDetail; } public void setSelectTodouhukenDetail(TodouhukenDto selectTodouhukenDetail) { this.selectTodouhukenDetail = selectTodouhukenDetail; } }

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

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

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

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

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

YT0014

2020/06/24 04:21

各ファイル、特にJSPのファイル名をご提示ください。 「どこを押しても沖縄県になる 」も、どのJSPのどの項目をクリックしたのか、具体的にご提示ください。
aaaajj

2020/06/24 04:33

ご返信ありがとうございます。 ファイル名を追記しましたのでご確認お願い致します。
YT0014

2020/06/24 04:54

TodouhukenRegistLogic#getTodouhukenList()のコードが不明なので、可能性だけですが、サーブレット内の処理内に問題があると仮定した場合。 1.kennBanngoが正しく渡っていない。(常に沖縄の番号) 2.getTodouhukenList()の処理の不具合で、常に沖縄の情報を取得しているか、全件取得し、最初または最後の情報を返している。 問題がなければ、TodouhukenRegistLogic.java,TodouhukenRegistDto.javaのコードのご提示もお願いします。
aaaajj

2020/06/24 05:05

文字数の関係でコメントや一部無関係のコードを省いております。 よろしくお願いします。
YT0014

2020/06/24 05:13

デバッガやログ出力などにで、サーブレット内のkennBanngoの値や、TodouhukenDao#selectTodouhukenDetail()内の動作をご確認ください。 現状、この確認ができるのは、aaaajjさんですので。
aaaajj

2020/06/24 05:26 編集

知識不足でデバッガはしたのですが動作の確認方法がわかりません。 ブレイクタイムまではしています ご教授いただければ幸いです。
YT0014

2020/06/24 05:38

開発環境名(eclipse、VisualStudioなど)とデバッグ、変数の値の確認、などのキーワードなどで検索してください。
aaaajj

2020/06/24 05:57

kennbanngoの変数はnullになっていました。
YT0014

2020/06/24 06:04

buttonに指定しているvalueがサーブレットに渡されていないということなので、todouhuken_search.jsp の修正が必要です。他の方法で、値を渡す方法を試みてください。hidden属性のinputを用意して、submitData()の引数にkennbanngoを追加して、submitData()内で用意したinputにセットするとか、いかがでしょう。
aaaajj

2020/06/24 06:17

<input type="hidden" value="${todouhuken.kennBanngo}"> このような認識でしょうか?
YT0014

2020/06/24 06:21

name属性が必要ですが、まずは、やってみてください。 そして、渡された値を再度確認して、問題があれば修正してください。 それが、プログラミングを学ぶということですので。
aaaajj

2020/06/24 07:11

valueなど変えたりしましたがNULLから変わりなく詰まってしまいました。
aaaajj

2020/06/24 09:51

これ以上の対応が思いつきません ぜひ、ご教授願います。
YT0014

2020/06/24 11:50

試したコードがわかるように、質問を修正してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問