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

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

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

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

Spring

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

Q&A

2回答

17403閲覧

SpringBoot 画面遷移できない

plue

総合スコア71

Java

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

Spring

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

0グッド

1クリップ

投稿2015/03/04 12:25

SpringBoot + thymeleafで作ったプロジェクトのwarをサーバに配備したところ、
ログイン画面以降の画面遷移が出来なくなってしまいました(開発環境(eclipse)では可能でした)。

ログイン画面へは

http://IPアドレス:8080/warファイル名」

でアクセスできるのですが、ログイン画面のボタンを押下を押下すると

http://IPアドレス:8080/次の画面」

となってしまい、アクセスできません。
手入力で「「http://IPアドレス:8080/warファイル名/次の画面」とすればアクセスできます。
ソースは以下のようになっております。
おわかりになられる方がいましたら、ご教授のほどよろしくお願い致します。

▼最初に表示されるログイン画面▼

lang

1<!DOCTYPE html> 2<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 3<head> 4 <meta charset="utf-8" /> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 8 <title>ログイン</title> 9 10 <!-- Bootstrap core CSS --> 11 <link href="/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet" /> 12 <!-- loginページ用css --> 13 <link href="/css/login.css" th:href="@{/css/login.css}" rel="stylesheet"/> 14 15 <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 16 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 17 <!--[if lt IE 9]> 18 <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 19 <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 20 <![endif]--> 21</head> 22<body> 23 24 <header id="top" class="header"> 25 <div class="text-vertical-center"> 26 27 <h1>ログイン画面</h1> 28 29 <!-- Form --> 30 <form action="/top" method="post" class="form-signin" role="form"> 31 <h2 class="form-signin-heading">Please sign in</h2> 32 <input type="email" class="form-control" placeholder="ID" required="required" /> 33 <input type="password" class="form-control" placeholder="パスワード" required="required" /> 34 <div class="checkbox"> 35 <label> 36 <input type="checkbox" value="remember-me" /> Remember me 37 </label> 38 </div> 39 <!-- ログインボタン --> 40 <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 41 </form> 42 </div> 43</header> 44</body> 45</html>

▼ログイン画面用コントローラ▼

lang

1@Controller 2public class LoginController { 3 // ログイン画面へ 4 @RequestMapping( "/") 5 public String index() { 6 return "login"; 7 } 8 9 // トップ画面へ 10 @RequestMapping( "/top") 11 public String login() { 12 return "top"; 13 } 14}

▼トップ画面▼

lang

1<!DOCTYPE html> 2<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 3<head> 4 <meta charset="utf-8" /> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 8 <title>トップページ</title> 9 10 <!-- Bootstrap core CSS --> 11 <link href="/css/bootstrap.min.css" rel="stylesheet" /> 12 <!-- topページ用css --> 13 <link href="/css/top.css" rel="stylesheet"/> 14 15 <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 16 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 17 <!--[if lt IE 9]> 18 <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 19 <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 20 <![endif]--> 21</head> 22<body> 23 <!-- Form --> 24 <form action="/reference" method="post" role="form"> 25 <!-- <form class="manu-form" action="/reference" method="post" role="form">--> 26 <!-- 次画面遷移ボタン --> 27 <button class="btn btn-default menu-btn button hvr-outline-in" type="submit"> 28 ボタン1 29 </button> 30 </form> 31 32 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 33 <script src="js/bootstrap.min.js"></script> 34</body> 35</html>

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

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

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

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

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

guest

回答2

0

<form action="/top" method="post" class="form-signin" role="form">

にて、action属性をthymeleafが解析したときの値も記載しましょう。

<form action="/top" th:action="@{/top}" ..... >

こうすることでthymeleafは自動的にコンテキストパスも追加したURLになります。

投稿2016/06/29 06:11

A-pZ

総合スコア12011

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

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

0

数か月前の質問なのですでに解決されてるかもしれませんが
同じ問題で悩んでる人がいるかもしれないので回答しますね。

ログイン画面のボタン押下で正常に次画面に遷移しない理由はformのactionに指定されているパスにコンテキストパスが指定されていないからです。

以下のようにすれば正常に遷移するはずです。

HTML

1<form action="/top" method="post" class="form-signin" role="form"> 23<form action="/warファイル名/top" method="post" class="form-signin" role="form">

SpringBootではデフォルトではjarで実行することになってると思うので、コンテキストパスは設定されていません。
今回のようにwarで出力し、サーバーにデプロイするのでしたらwarのファイル名でコンテキストパスを設定する必要があるかと思います。
クラスパス直下にapplication.propertiesかapplication.ymlがあると思いますので
それに出力するwarファイル名でコンテキストパスを設定してください。
(HTMLでth:action属性にコンテキストパス補完をしていることが前提)

投稿2015/12/23 13:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問