🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Eclipse Plugin

Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。

JSP

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

2回答

15389閲覧

SpringFrameworkの500エラー

nikuman1251

総合スコア15

Eclipse Plugin

Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。

JSP

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2018/12/11 06:28

前提・実現したいこと

Spring Frameworkを利用して、会員登録画面を作成しようとしています。
jspでModelの変数を参照する際に以下のエラーが出ました。

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

HTTPステータス 500 - Internal Server Error Type Exception Report メッセージ An exception occurred processing [WEB-INF/views/user_register.jsp] at line [25] 説明 The server encountered an unexpected condition that prevented it from fulfilling the request. 例外 org.apache.jasper.JasperException: An exception occurred processing [WEB-INF/views/user_register.jsp] at line [25] 22: <table width="1000"> 23: <tr> 24: <td>メールアドレス</td> 25: <td><form:input path="userMail" size="50" /></td> 26: <td><form:errors path="userMail" element="div" cssClass="error" /></td> 27: </tr> 28: </table> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1217) org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) 原因 java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'UserInformationModel' available as request attribute org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116) org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) org.apache.jsp.WEB_002dINF.views.user_005fregister_jsp._jspx_meth_form_005finput_005f0(user_005fregister_jsp.java:270) org.apache.jsp.WEB_002dINF.views.user_005fregister_jsp._jspService(user_005fregister_jsp.java:172) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1217) org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) 注意 原因のすべてのスタックトレースは、のログに記録されています Apache Tomcat/9.0.7

該当のソースコード

Model

1package jp.ken.rentalSite.model; 2 3import java.io.Serializable; 4 5import javax.validation.constraints.Pattern; 6 7import org.hibernate.validator.constraints.Email; 8import org.hibernate.validator.constraints.NotEmpty; 9 10@SuppressWarnings("deprecation") 11public class UserInformationModel implements Serializable { 12 13 @NotEmpty(groups=ErrorCheckGroup1.class, message="メールアドレスを入力してください") 14 @Email(groups=ErrorCheckGroup1.class,message="メールアドレスではありません") 15 private String userMail; 16 @NotEmpty(groups=ErrorCheckGroup1.class, message="パスワードを入力してください") 17 private String userPassword; 18 private String plan; 19 @NotEmpty(groups=ErrorCheckGroup1.class, message="郵便番号を入力してください") 20 @Pattern(regexp="^\d{7}",message="正しい郵便番号を入力してください") 21 private String zip; 22 private String userAddress; 23 @NotEmpty(message="電話番号を入力してください") 24 @Pattern(regexp="^\d{9,11}$",message="正しい電話番号を入力してください") 25 private String userTel; 26 @NotEmpty 27 private String userName; 28 private String userBirthday; 29 private String cardNumber; 30 private String gender; 31 32 以下、getter/setter(自動生成)

Controller

1package jp.ken.rentalSite.userInformation.controller; 2 3import javax.validation.GroupSequence; 4import javax.validation.groups.Default; 5 6import org.springframework.stereotype.Controller; 7import org.springframework.ui.Model; 8import org.springframework.validation.BindingResult; 9import org.springframework.web.bind.annotation.ModelAttribute; 10import org.springframework.web.bind.annotation.RequestMapping; 11import org.springframework.web.bind.annotation.RequestMethod; 12 13import jp.ken.rentalSite.model.ErrorCheckGroup1; 14import jp.ken.rentalSite.model.UserInformationModel; 15 16@Controller 17public class UserRegisterController { 18 19 @GroupSequence({ Default.class,ErrorCheckGroup1.class }) 20 interface GroupOrder1 {} 21 22 23 @RequestMapping(value="/AccountRegister", method=RequestMethod.GET) 24 public String regit(Model model) { 25 return "user_register"; 26 } 27 28 @RequestMapping(value="/AccountRegister",method=RequestMethod.POST) 29 public String confirm(@ModelAttribute UserInformationModel uModel,BindingResult result,Model model) { 30 model.addAttribute("userMail",uModel.getUserMail()); 31 model.addAttribute("userPassword",uModel.getUserPassword()); 32 model.addAttribute("plan",uModel.getPlan()); 33 model.addAttribute("zip",uModel.getZip()); 34 model.addAttribute("userAddress",uModel.getUserAddress()); 35 model.addAttribute("userTel",uModel.getUserTel()); 36 model.addAttribute("userName",uModel.getUserName()); 37 model.addAttribute("userBirthDay",uModel.getUserBirthday()); 38 model.addAttribute("cardNumber",uModel.getCardNumber()); 39 model.addAttribute("gender",uModel.getGender()); 40 41 return "user_register"; 42 } 43 44}

jsp

1<?xml version="1.0" encoding="UTF-8" ?> 2<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 3<%@ taglib prefix="c" uri ="http://java.sun.com/jsp/jstl/core" %> 4<%@ page language="java" contentType="text/html; charset=UTF-8" 5 pageEncoding="UTF-8"%> 6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7<html xmlns="http://www.w3.org/1999/xhtml"> 8<head> 9<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 10<title>新規アカウント作成</title> 11<style type="text/css"> 12.error{ 13 color:#FF0000 14} 15</style> 16</head> 17<body> 18 <div align="center"> 19 <h1>新規アカウント作成</h1> 20 <hr /> 21 <form:form modelAttribute="UserInformationModel"> 22 <table width="1000"> 23 <tr> 24 <td>メールアドレス</td> 25 <td><form:input path="userMail" size="50" /></td> 26 <td><form:errors path="userMail" element="div" cssClass="error" /></td> 27 </tr> 28 </table> 29 </form:form> 30 </div> 31 32</body> 33</html>

試したこと

@ModelAttributeを@Controllerに追加→404エラー
スペルミスは確認しましたが、ないはずです。
jspの21行目、ModelAttributeの大文字小文字の切り替え→500エラー

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

eclipse Oxygen.3a Release (4.7.3a)
Spring tools 3 add-on(aka Spring tool Suite 3) 3.9.5 release
Tomcat 9.0.7

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

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

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

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

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

guest

回答2

0

自己解決

原因は、どうやらControllerのGET通信の方にあったようです。GET通信のメソッドでは、ただ、要求が来たらjspに送っているだけですが、此処に

UserInformationModel uModel = new UserInformationModel();
model.addAttribute("UserInformationModel",uModel);

を追加することでjspが参照していた変数にアクセスできるようになりました。

投稿2018/12/14 04:29

nikuman1251

総合スコア15

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

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

0

<td><form:input path="userMail" size="50" /></td> ^ |ここ
</td>で閉じようとしているが、/のスペルミスか何かで閉じられているか何かでは?

投稿2018/12/11 06:39

編集2018/12/11 06:41
yukkuri

総合スコア624

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

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

nikuman1251

2018/12/12 02:15

form:input の終了タグのつもりなのですが、間違えていますか?
yukkuri

2018/12/12 08:19

すいません。私が無知なだけでした。ただ、エラーはこの行から出ています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問