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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

588閲覧

spring bootの画面切替について

Xotic

総合スコア25

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2022/05/11 07:29

下記URLよりSpringBootを勉強したてのものです。
大項目の4での住所録の作成はエラーが出て調べて作成ができましたが
課題5を行っている最中でエラーが出てきてしまい、ご教示いただきたいです。
https://www.sys-link.jp/technical/SpringBoot/SpringBoot0-0.html

新規追加のボタンを押すとエラーが出てしまいます。
コントローラは前の住所録と同じ作成方法で行っているので
htmlファイルに問題があるのかと考えておりますが、
どこに問題があるのか自分ではわからない状態です。
イメージ説明

BbsController.java

1 2 3import java.util.Date; 4import java.util.List; 5 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.stereotype.Controller; 8import org.springframework.transaction.annotation.Transactional; 9import org.springframework.web.bind.annotation.GetMapping; 10import org.springframework.web.bind.annotation.ModelAttribute; 11import org.springframework.web.bind.annotation.PostMapping; 12import org.springframework.web.bind.annotation.RequestParam; 13import org.springframework.web.servlet.ModelAndView; 14 15@Controller 16public class BbsController { 17 @Autowired 18 BbsRepository repos; 19 20 /* 一覧画面(初期画面)への遷移 */ 21 @GetMapping 22 public ModelAndView list() { 23 ModelAndView mav = new ModelAndView(); 24 List<Bbs> list = repos.findAll(); 25 mav.setViewName("users/list"); 26 mav.addObject("data", list); 27 return mav; 28 } 29 30 /* 新規画面への遷移 */ 31 @GetMapping("/add") 32 ModelAndView add() { 33 ModelAndView mav = new ModelAndView(); 34 Bbs data = new Bbs(); 35 mav.addObject("formModel", data); 36 mav.setViewName("users/new"); 37 return mav; 38 } 39 40 /* 編集画面への遷移 */ 41 @GetMapping("/edit") 42 ModelAndView edit(@RequestParam int id) { 43 ModelAndView mav = new ModelAndView(); 44 Bbs data = repos.findById(id); 45 mav.addObject("formModel", data); 46 mav.setViewName("users/new"); 47 return mav; 48 } 49 50 /* 詳細への遷移 */ 51 @GetMapping("/show") 52 ModelAndView show(@RequestParam int id) { 53 ModelAndView mav = new ModelAndView(); 54 Bbs data = repos.findById(id); 55 mav.addObject("formModel", data); 56 mav.setViewName("users/show"); 57 return mav; 58 } 59 60 /* 更新処理 */ 61 @PostMapping() 62 @Transactional(readOnly=false) 63 public ModelAndView save( 64 @ModelAttribute("formModel") Bbs bbs) { 65 bbs.setCreateDate(new Date()); 66 repos.saveAndFlush(bbs); 67 return new ModelAndView("redirect:users/list"); 68 } 69 70 /* 削除処理 */ 71 @PostMapping("/delete") 72 @Transactional(readOnly=false) 73 public ModelAndView delete(@RequestParam int id) { 74 repos.deleteById(id); 75 return new ModelAndView("redirect:/"); 76 } 77

BbsRepository.java

1package com.example.demo; 2 3import org.springframework.data.jpa.repository.JpaRepository; 4 5public interface BbsRepository extends JpaRepository<Bbs, Long> { 6 public Bbs findById(int id); 7 public void deleteById(int id); 8} 9

Bbs.java

1package com.example.demo; 2 3import java.util.Date; 4 5import javax.persistence.Column; 6import javax.persistence.Entity; 7import javax.persistence.GeneratedValue; 8import javax.persistence.GenerationType; 9import javax.persistence.Id; 10import javax.persistence.Table; 11 12import lombok.Getter; 13import lombok.Setter; 14 15@Entity 16@Getter 17@Setter 18@Table(name="bbs") 19 20public class Bbs { 21 22 @Id 23 @GeneratedValue(strategy = GenerationType.AUTO) 24 private int id; 25 26 @Column 27 private Date createDate; 28 @Column 29 private String title; 30 @Column 31 private String content; 32 @Column 33 private String createUser; 34 35}

list.html

1<h1>掲示板</h1> 2<table border="1"> 3 <tr> 4 <th class="col_create_date">作成日</th> 5 <th class="col_title">タイトル</th> 6 <th class="col_create_user">作成者</th> 7 <th>詳細</th> 8 <th>編集</th> 9 <th>消去</th> 10 </tr> 11 <tr th:each="obj : ${data}"> 12 <td th:text="${#dates.format(obj.date, 'yyyy/MM/dd')}"> 13 <td th:text="${obj.title}"></td> 14 <td th:text="${obj.create_user}"></td> 15 <td> 16 <form action="/show" method="get"> 17 <input type="submit" value="詳細"> 18 <input type="hidden" name="id" th:value="${obj.id}"> 19 </form> 20 </td> 21 <td> 22 <form action="/edit" method="get"> 23 <input type="submit" value="編集"> 24 <input type="hidden" name="id" th:value="${obj.id}"> 25 </form> 26 </td> 27 <td> 28 <form action="/delete" method="post"> 29 <input type="submit" value="削除"> 30 <input type="hidden" name="id" th:value="${obj.id}"> 31 </form> 32 </td> 33 </tr> 34</table> 35<hr> 36<form action="/add"> 37 <input type="submit" value="新規追加" /> 38</form> 39</body> 40</html>

new.html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6<style> 7table { 8 border-collapse: collapse; 9} 10.col_name {width:200px;} 11.col_data {width:400px;} 12form {display: inline;} 13</style> 14</head> 15<body> 16<h1>掲示板登録</h1> 17<form method="post" action="/" th:object="${formModel}"> 18<input type="hidden" name="id" th:value="*{id}"> 19<table border="1"> 20 <tr> 21 <th class="col_title">タイトル</th> 22 <td class="col_data"> 23 <input type="text" name="name" th:value="*{title}" size="40" 24 maxlength= "40" /> 25 </td> 26 </tr> 27 <tr> 28 <th>内容</th> 29 <td> 30 <input type="text" name="content" th:value="*{content}" size="40" 31 maxlength="40" /> 32 </td> 33 </tr> 34 <tr> 35 <th>作成者</th> 36 <td> 37 <input type="text" name="create_user" th:value="*{create_user}" size="40" 38 maxlength= "40" /> 39 </td> 40 </tr> 41</table> 42<hr> 43<input type="submit" value="登 録" /> 44</form> 45<form action="/"> 46 <input type="submit" value="戻 る" /> 47</form> 48</body> 49</html>

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

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

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

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

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

m.ts10806

2022/05/11 07:50

どのようなエラーでしょう
Xotic

2022/05/11 08:09

肝心な部分を入力し忘れてしまいました。 ページを開くと Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed May 11 17:08:38 GMT+09:00 2022 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/users/new.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/users/new.html]") と表示されています。
m.ts10806

2022/05/11 12:05

質問は編集できます。 500エラーは多岐に渡りますからね。 サーバーもしくはコンソールログにそのHTMLのどこに問題があるか行数とか出てるのでは?
Xotic

2022/05/11 13:05

 ありがとうございます。 エラー文すべてだと質問に入りきりませんでしたので一応下記に記載しておきます。 もう一度見直したら数か所はわかりそうなので再度がんばってみます。」 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed May 11 21:50:51 GMT+09:00 2022 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/users/new.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/users/new.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "create_user" (template: "users/new" - line 37, col 47) at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393) at org.attoparser.MarkupParser.parse(MarkupParser.java:257) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230) ... 48 more Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "create_user" (template: "users/new" - line 37, col 47) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292) at org.thymeleaf.standard.expression.SelectionVariableExpression.executeSelectionVariableExpression(SelectionVariableExpression.java:158) at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:92) at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144) at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) at org.thymeleaf.engine.ProcessorTemplateHandler.handleStandaloneElement(ProcessorTemplateHandler.java:918) at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleStandaloneElementEnd(TemplateHandlerAdapterMarkupHandler.java:260) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:256) at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleStandaloneElementEnd(OutputExpressionInlinePreProcessorHandler.java:169) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:104) at org.attoparser.HtmlElement.handleStandaloneElementEnd(HtmlElement.java:79) at org.attoparser.HtmlMarkupHandler.handleStandaloneElementEnd(HtmlMarkupHandler.java:241) at org.attoparser.MarkupEventProcessorHandler.handleStandaloneElementEnd(MarkupEventProcessorHandler.java:327) at org.attoparser.ParsingElementMarkupUtil.parseStandaloneElement(ParsingElementMarkupUtil.java:96) at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:706) at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301) ... 50 more Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'create_user' cannot be found on object of type 'com.example.demo.Bbs' - maybe not public or not valid? at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:217) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:91) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112) at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:338) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265) ... 69 more
m.ts10806

2022/05/11 20:50

エラーは全部必要ではないですけど(トレースなので) これですね。 >org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'create_user' cannot be found on object of type 'com.example.demo.Bbs' - maybe not public or not valid?
guest

回答1

0

自己解決

>org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'create_user' cannot be found on object of type 'com.example.demo.Bbs' - maybe not public or not valid?

からcreate_userの文字列がHTMLとjavaで異なったのでこちらを統一したら切り替えが可能になりました。
またほかのエラーが出ましたが、エラー文を読んで頑張ってみたいと思います。

投稿2022/05/13 06:18

Xotic

総合スコア25

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問