LoginSignup
0
0

More than 1 year has passed since last update.

#11 messages.propertiesの値をコントローラに渡す

Last updated at Posted at 2022-11-19

#11 messages.propertiesの値をコントローラに渡す

前回の記事ではmessages.propertiesに記述した内容を各画面に直接入力してましたが、今回はコントローラに渡してから各画面で値を表示します。

前提条件

この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

前回まで

前回の記事

前々回の記事

構築環境

  1. 各バージョン
    Spring Boot ver 2.7.5

  2. 依存関係
    image.png

成果物

前回と変化無し

今回行うこと

1. サービス処理にmessages.propertiesの値を渡す

UserService.java
package com.example.service;

import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;

@Service
public class UserService {
	
	/* messages.propertiesの値を取得するためにMessageSourceを使用する */
	@Autowired
	private MessageSource messagesource;
	
	/* 性別のMapを生成する */
	public Map<String, Integer> getGenderMap() {
		Map<String, Integer> genderMap = new LinkedHashMap<>();
        /* getMessageを使用することでmessages.propertiesの内容を取得 */
		String male = messagesource.getMessage("user.signup.Male", null, Locale.JAPAN);
		String female = messagesource.getMessage("user.signup.FeMale", null, Locale.JAPAN);
		genderMap.put(male, 1);
		genderMap.put(female, 2);
		return genderMap;
	}
}

getMessageメソッドの引数

  • キー名(第1引数):messages.propertiesのキー名を記述します。
  • 埋め込みパラメーター(第2引数):メッセージに入れるパラメーターを指定します。
  • ロケール(第3引数):国(地域)を指定します。

最後に

コントローラー、画面レイアウトは変更しなくともこれで変更は完了です。

ラジオボタンがどちらか片方しか押せないはずなのに両方押せてします事象が発生中
→name属性がないことことが原因と判明

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0