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

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

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

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

HTML

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

Spring Boot

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

Q&A

解決済

1回答

1984閲覧

ログインユーザーでプロフィール登録した値を表示したい

Yoshi--

総合スコア62

Java

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

HTML

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

Spring Boot

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

0グッド

0クリップ

投稿2017/07/13 05:18

編集2017/07/13 05:23
<html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"/> <title>婚活サイト</title> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" th:href="@{/webjars/bootstrap/3.3.7/css/bootstrap.min.css}"/> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" th:href="@{/webjars/bootstrap/3.3.7/css/bootstrap-theme.min.css}"/> </head> <body th:with="user=${#authentication.principal.user}"> <!-- authenticationで認証ユーザー情報にアクセスできる 、principalプロパティでUserDetailsオブジェクトにアクセスできるので、user.mailでログインユーザー名が分かる--> <h2> <span th:text="${user.mail}">メアド</span> さん、ログイン中 </h2> <h2> <span th:text="${user.name}">名前</spa さん、ログイン中 </h2> <table class="table table-striped table-bordered table-condensed"> <h2>登録ユーザー</h2> <tr> <th>名前</th> <th>性別</th> <th>誕生日</th> <th>身長(cm)</th> <th>職業</th> <th>年収(万円)</th> <th>自己紹介</th> </tr> <tr th:each="profile : ${profile}"> <td th:text="${profile.name}">山田</td> <td th:text="${profile.gender.gender}">山田</td> <td th:text="${profile.birthday}">仮</td> <td th:text="${profile.height}">仮</td> <td th:text="${profile.occupation.occupationName}">仮</td> <td th:text="${profile.income}">仮</td> <td th:text="${profile.text}">仮</td> <td th:text="${profile.user.mail}">duke</td> <!-- 「profile」オブジェクトがもつ「user」の「mail」を表示 --> <td> <img th:src="${profile.image}"/></td> </tr> </table> <form th:action="@{/konkatsu}" method="get"> <input type="submit" class="btn btn-lg btn-primary btn-block" value="Myページへ"/> </form> </body> </html>

LoginUserDetails.java

java

1//UserDetailsの実装クラス 2 3package com.example.konkatsu.service; 4 5import org.springframework.security.core.authority.AuthorityUtils; 6 7import com.example.konkatsu.domain.User; 8 9import lombok.Data; 10 11@Data 12public class LoginUserDetails extends org.springframework.security.core.userdetails.User{ 13 private final User user; 14 15 16 public LoginUserDetails(User user){ 17 super(user.getMail(), user.getPass(), AuthorityUtils.createAuthorityList("ROLE_USER")); 18 this.user = user; 19 } 20}

やりたいことはログインユーザーで登録したプロフィール情報を画面に出力したいです

イメージ説明

usersテーブルとprofileテーブルはJOINしています。

<table class="table table-striped table-bordered table-condensed"> <h2>登録ユーザー</h2> <tr> <th>名前</th> <th>性別</th> <th>誕生日</th> <th>身長(cm)</th> <th>職業</th> <th>年収(万円)</th> <th>自己紹介</th> </tr> <tr th:each="profile : ${profile}"> <td th:text="${profile.name}">山田</td> <td th:text="${profile.gender.gender}">山田</td> <td th:text="${profile.birthday}">仮</td> <td th:text="${profile.height}">仮</td> <td th:text="${profile.occupation.occupationName}">仮</td> <td th:text="${profile.income}">仮</td> <td th:text="${profile.text}">仮</td> <td th:text="${profile.user.mail}">duke</td> <!-- 「profile」オブジェクトがもつ「user」の「mail」を表示 --> <td> <img th:src="${profile.image}"/></td> </tr> </table>

だとログインユーザーで登録した情報など
リストが全て問題なく表示されるのですが、

<body th:with="user=${#authentication.principal.user}"> <!-- authenticationで認証ユーザー情報にアクセスできる 、principalプロパティでUserDetailsオブジェクトにアクセスできるので、user.mailでログインユーザー名が分かる--> <h2> <span th:text="${user.mail}">メアド</span> さん、ログイン中 </h2> <h2> <span th:text="${user.name}">名前</span> さん、ログイン中 </h2>

でログインユーザーのアドレスは表示されますが
nameはエラーとなり表示されません

これはうまくjoinされていないのか
それとも書き方が違うのかわかりません。

ログイン中のプロフィール情報だけ
出力したいです

少しで良いので助言お願いします

追加するものがありましたら
お聞かせください

よろしくお願いします

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

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

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

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

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

guest

回答1

0

自己解決

ログインユーザーの情報を表示して、idを送ることで自己解決しました

投稿2017/07/13 10:52

Yoshi--

総合スコア62

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問