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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Spring Boot

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

Q&A

解決済

1回答

4405閲覧

submitで画面遷移したい。

kusogomitan

総合スコア17

Java

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Spring Boot

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

0グッド

0クリップ

投稿2020/11/06 06:34

編集2020/11/06 06:36

やりたいこと

submitボタン押下時に画面遷移したい。

ソース

Controller

1package com.example.demo; 2 3import java.io.IOException; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.boot.SpringApplication; 7import org.springframework.stereotype.Controller; 8import org.springframework.ui.Model; 9import org.springframework.web.bind.annotation.RequestMapping; 10 11@Controller 12public class BOXContoroller { 13 @Autowired 14 BOX box; 15 String text; 16 17 @RequestMapping("/output") 18 public String PATH(){ 19 return "./box.html"; 20 } 21 22 @RequestMapping("/result") 23 String output(Model model) { 24 try { 25 box.main(); 26 model.addAttribute("ダウンロード完了", text); 27 } catch (IOException e) { 28 e.printStackTrace(); 29 } 30 return "./result.html"; 31 } 32 public static void main(String[] args) { 33 SpringApplication.run(BOXContoroller.class, args); 34 } 35} 36 37

html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>PDF作成</title> 6 </head> 7 <body> 8 <form action = "./result.html" th:action="@{/result}" method = "post"> 9 <input type = "submit" value = "download"> 10 </form> 11 </body> 12</html>

result

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>PDF作成</title> 6 </head> 7 <body> 8 <p th:text = "${text}"></p> 9 </body> 10</html>

boxクラスは定義済みで、コンポーネントとして扱っています。
ブラウザでlocalhost:8080/outputを検索してもWhitelabel Error Pageになってしまいます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

1.ボタン押下時のJavaクラス呼び出し修正

まず、htmlを以下の形に書き換えます。

html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>PDF作成</title> 6 </head> 7 <body> 8 <form action = "/result" method = "post"> 9 <input type = "submit" value = "download"> 10 </form> 11 </body> 12</html>

これで「download」ボタンを押した時に@RequestMapping("/result")のアノテーションを付与しているoutputメソッドが実行されます。

2.returnについて

現在returnする際に"./result.html"や"./box.html"を返すよう実装されていますが、返す文字列としてはview名のみでOKです。
今回、result.htmlというviewを返したいのであればreturn値を"result"としてあげれば、outputメソッド処理終了後にresult.htmlの内容がブラウザ上に表示されるはずです。

※localhost:8080/outputを呼び出した際のWhitelabel Error Pageもreturn値を"box"と指定すれば正常に画面遷移できるはずです。
box.htmlというviewを作成していないとNot Foundが発生しますのでもし作成していない場合は気をつけてください!

投稿2020/11/06 15:31

yusn1230

総合スコア31

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問