実現したいこと
STSの動的プロジェクトで登録情報の入力を作っています。
サーバー実行押した際に、HTMLは表示されますがJSPが表示されません
前提
環境:springboot/Tomcat9/jdk17
発生している問題・エラーメッセージ
エラーメッセージがでない
該当のソースコード
register.html
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"/> 5 <title>登録画面</title> 6</head> 7<body> 8 <h1>登録情報を入力してください</h1> 9 <form action="/SampleMVCC/register" method="post"> 10 名前:<input type="text" name="name" size="10" /><br/> 11 年齢:<input type="radio" name="age" value="child" />18歳未満 12 <input type="radio" name="age" value="adult" />18歳以上<br/> 13 開発経験:<input type="checkbox" name="lang" value="Java" />Java 14 <input type="checkbox" name="lang" value="Python" />Python 15 <input type="checkbox" name="lang" value="JavaScript" />JavaScript<br/><br/> 16 <input type="submit" value="送信" /> 17 </form> 18</body> 19</html> 20
RegisterServlet.java
1import bean.RegisterBean; 2import java.io.*; 3import javax.servlet.*; 4import javax.servlet.http.*; 5import javax.servlet.annotation.*; 6 7@WebServlet("/register") 8public class RegisterServlet extends HttpServlet { 9 public void doPost(HttpServletRequest req, HttpServletResponse res) 10 throws IOException, ServletException { 11 12 req.setCharacterEncoding("utf-8"); 13 14 String name = req.getParameter("name"); 15 String age = req.getParameter("age"); 16 String[] langs = req.getParameterValues("lang"); 17 res.setContentType("text/html;charset=utf-8"); 18 19 20 RegisterBean rb = new RegisterBean(); 21 rb.setName(name); 22 rb.setAge(age); 23 rb.setLangs(langs); 24 25 26 req.setAttribute("rb", rb); 27 28 29 RequestDispatcher rd = req.getRequestDispatcher("/regist.jsp"); 30 rd.forward(req, res); 31 } 32 public void doGet(HttpServletRequest req, HttpServletResponse res) 33 throws IOException, ServletException { 34 doPost(req, res); 35 } 36}
RegisterBean.java
1package bean; 2 3import java.io.Serializable; 4 5public class RegisterBean implements Serializable{ 6 private String name; 7 private String age; 8 private String[] langs; 9 10 public RegisterBean(){ 11 } 12 13 public void setName(String name){ 14 this.name = name; 15 } 16 public void setAge(String age){ 17 this.age = age; 18 } 19 public void setLangs(String[] langs){ 20 this.langs = langs; 21 } 22 23 public String getName(){ 24 return name; 25 } 26 public String getAge(){ 27 return age; 28 } 29 public String[] getLangs(){ 30 return langs; 31 } 32 33 public String getJpnAge(){ 34 String jpnAge; 35 if(age.equals("child")){ 36 jpnAge = "18歳未満"; 37 } else { 38 jpnAge = "18歳以上"; 39 } 40 return jpnAge; 41 } 42 public String getStrLangs(){ 43 String strLangs = ""; 44 for(int i = 0; i < langs.length; i++){ 45 strLangs = strLangs + langs[i] + " "; 46 } 47 return strLangs; 48 } 49}
register.jsp
1<%@page contentType="text/html;charset=utf-8" %> 2<jsp:useBean id="rb" scope="request" class="bean.RegisterBean" /> 3<html> 4 <head> 5 <title>確認画面</title> 6 </head> 7<body> 8 <h2>入力情報を確認して登録ボタンを押してください</h2> 9 氏名:<strong><jsp:getProperty name="rb" property="name" /></strong><br/> 10 年齢:<strong><%= rb.getJpnAge() %></strong><br/> 11 開発経験:<strong><%= rb.getStrLangs() %></strong><br/><br/> 12<input type="submit" value="登録" /> 13<input type="reset" value="戻る" /> 14</body> 15</html>
試したこと
・htmlファイルの「 <form action="/SampleMVCC/register" method="post">」ソース内確認
・ディレクトリ先の配置確認
・STSのサーバータグで対象のプロジェクト「追加及び排除で構成済みリソース追加されているか確認
・Tomcatフォルダ自体のbinからstartup.batが起動され重複してないかの確認(ポート重複してないか)
・オブジェクト名の頭文字を大文字startにすると、htmlすら404になってしまう
Github共有
回答1件
あなたの回答
tips
プレビュー