前提・実現したいこと
postで値を渡したい
ここに質問の内容を詳しく書いてください。
一覧画面で選んだ都道府県の県番号を詳細ボタンで渡したいです。
発生している問題・エラーメッセージ
登録画面で値を受け取れない
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> <script type="text/javascript"> function submitData(pAction) { document.forms[0].action = pAction; } </script> </head> <body> <div style="background-color: #00ccff; width: *px; padding: 10px; border: 1px solid #ccc"> 研修システム</div> <div style="background-color: #ffccff; width: 240px; padding: 10px; border: 1px solid #ccc"> 都道府県一覧</div> <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='${kennmei}'/>" /> </div> <div> 人口:<input type="text" name="jinnkouFrom" value="<c:out value='${kennmei}'/>" /> ~<input type="text" name="jinnkouTo" value="<c:out value='${kennmei}'/>" /> </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('./TodouhukenRegistAdd');">追加</button> </div> </div> <div style="height: 250px; width: 600px; overflow-y: scroll;"> <div class="resultList"> <table class="todouhukenTable"> <table 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> <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> <form method="post" action="?"> <td><button type="submit" name="submitButtonName" class="kennbanngo" onclick="submitData('./TodouhukenSearch_Details');">詳細</button>
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"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/design_todouhuken_search.css" /> <html> <script type="text/javascript"> function submitData(pAction) { document.forms[0].action = pAction; document.forms[0].submit(); } </script> <script type="text/javascript"> function submitData(pAction) { document.forms[0].action = pAction; } </script> <head> <div style="background-color: #00ccff; width: *px; padding: 6px; border: 1px solid #ccc"> 研修システム</div> <div style="background-color: #ffccff; width: 240px; padding: 6px; border: 1px solid #ccc"> 都道府県登録</div> </head> <body> </div> <form method="post" action="?"> <div> 県名:<input type="text" name="kennmei" value="<c:out value='${kennmei}'/>" /> </div> </div> <div align="right" class="condButton"> <button type="submit" name="submitButtonName" value="search" onclick="submitData('./TodouhukenSearch_Details');">検索</button> <form method="post" action="./MenuButtonClick"> <c:forEach var="todouhuken" items="${todouhukenList}" varStatus="st"> </form> </tbody> </table> </table> </div> </div> </div> </body> </form> </form> <font name="kenban" size="2" color="#000000">県番号 </font>: <input class="kennbanngo" value=${todouhuken.kennBanngo } type="text"><br /> <font size="2" color="#000000">県名 </font>: <input class="kennmei" value=${todouhuken.kennmei } type="text"> <br /> <font size="2" color="#000000">県庁所在地</font>: <input class="kenncyousyozaichi" type="text" value=${todouhuken.kenncyouSyozaichi}> <br /> <font size="2" color="#000000">地方 </font>: <input class="chihou" value=${todouhuken.chihou } type="text"> <br /> <font size="2" color="#000000">人口 </font>: <input class="jinnkou" value=${todouhuken.jinnkou } type="text"> <br /> </c:forEach> </form>
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.search.TodouhukenSearchDto; import training.logic.todouhuken.search.TodouhukenSearchLogic; /** * 都道府県一覧画面ボタン押下時処理サーブレット */ @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"); String kennmei = request.getParameter("kennmei"); String chihou = request.getParameter("chihou"); String kenncyouSyozaichi = request.getParameter("kenncyouSyozaichi"); String jinnkou = request.getParameter("jinnkou"); // 都道府県一覧画面用DTOを生成 TodouhukenSearchDto dto = new TodouhukenSearchDto(); // 画面入力した値を設定 dto.setKennmei(kennBanngo); dto.setKennmei(kennmei); dto.setChihou(chihou); dto.setJinnkouFrom(kenncyouSyozaichi); dto.setJinnkouTo(jinnkou); // 一覧の情報取得 TodouhukenSearchLogic logic = new TodouhukenSearchLogic(); logic.getTodouhukenList(dto); // 画面表示時に使用する値を設定 request.setAttribute("kennBanngo",kennBanngo); request.setAttribute("kennmei", kennmei); request.setAttribute("chihou", chihou); request.setAttribute("kenncyouSyozaichi", kenncyouSyozaichi); request.setAttribute("jinnkou", jinnkou); // 取得した一覧を設定 request.setAttribute("todouhukenList", dto.getTodouhukenList()); // 文字エンコードの設定(レスポンス) response.setContentType("text/html; utf-8"); // フォワード先をregist.jspに設定 String forwardPath = "/WEB-INF/view/todouhuken_regist.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(forwardPath); // フォワード実行 dispatcher.forward(request, response); } }
ソースコード