前提・実現したいこと
複数のプルダウンとテキストをformでサーブレットに送信して、
それぞれtableに送信したいです。
下記の方法で実行してみたのですが、textの値しか送信されなかったのでどうか知識をお貸し頂きたいです。
試したこと
_form.jsp
JSP
1<c:if test="${errors != null}"> 2 <div id="flush_error"> 3 入力内容にエラーがあります。<br /> 4 <c:forEach var="error" items="${errors}"> 5 ・<c:out value="${error}" /><br /> 6 </c:forEach> 7 8 </div> 9</c:if> 10 11<form method="GET" action = "サーブレット名"> 12<select name="メニュー1"> 13<option value="選択肢1">選択肢1</option> 14<option value="選択肢2">選択肢2</option> 15<option value="選択肢3">選択肢3</option> 16</select> 17<input type="text" name="プルダウン1" value="${Dammy.プルダウン1}" <!--textとプルダウンの内容が両方同じ位置に送られるようにしたい--> 18 19<select name="メニュー1"> 20<option value="選択肢1">選択肢1</option> 21<option value="選択肢2">選択肢2</option> 22<option value="選択肢3">選択肢3</option> 23</select> 24<input type="text" name="プルダウン2" value="${Dammy.プルダウン2}" 25 26<input type="hidden" name="_token" value="${_token}" /> 27<button type="submit">投稿</button> 28</form> 29
DammyCreateServlet.java
java
1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 String _token = (String)request.getParameter("_token"); 3 if(_token != null && _token.equals(request.getSession().getId())) { 4 EntityManager em = DBUtil.createEntityManager(); 5 6 クラス名 k = new クラス名(); 7 8 k.setプルダウン1(request.getParameter("プルダウン1")); 9 k.setプルダウン2(request.getParameter("プルダウン2")); 10 11 List<String> errors = DammyValidator.validate(t); 12 if(errors.size() > 0) { 13 em.close(); 14 15 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/dammy/new.jsp"); 16 rd.forward(request, response); 17 } else { 18 em.getTransaction().begin(); 19 em.persist(t); 20 em.getTransaction().commit(); 21 em.close(); 22 request.getSession().setAttribute("flush", "登録が完了しました。"); 23 24 response.sendRedirect(request.getContextPath() + "/dammy/index"); 25 }
DammyValidator.java
package models.validators; import java.util.ArrayList; import java.util.List; import models.クラス名; public class DammyValidator { public static List<String> validate(クラス名 k) { List<String> errors = new ArrayList<String>(); String プルダウン1_error = _validateTitle(d.getプルダウン1()); if(!プルダウン1_error.equals("")) { errors.add(プルダウン1_error); } return errors; } private static String _validateTitle(String プルダウン1) { if(プルダウン1 == null || プルダウン1.equals("")) { return "エラーメッセージ"; } return ""; } }
new.jsp
JSP
1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3<c:import url="/WEB-INF/views/layout/app.jsp"> 4 <c:param name="content"> 5 <h2>新規登録ページ</h2> 6 7 <form method="POST" action="<c:url value='/dammy/create' />"> 8 <c:import url="_form.jsp" /> 9 </form> 10 11 <p><a href="<c:url value='/dammy/index' />">一覧に戻る</a></p> 12 </c:param> 13</c:import>
補足情報(FW/ツールのバージョンなど)
Eclipse 4.6Neon、MySQL
回答1件
あなたの回答
tips
プレビュー