您的位置:首頁技術文章
文章詳情頁

spring boot國際化之MessageSource的使用方法

瀏覽:4日期:2023-04-06 16:47:31

前言

修改properties文件的目錄:在application.yml或者application.properties中配置 spring.message.basename

spring: application: name: test-worklog messages: basename: i18n/messages encoding: UTF-8

spring boot國際化之MessageSource的使用方法

MessageSource的使用:

1. 無參數

operation.success = 操作成功。

String msg1 = this.messageSource.getMessage(' operation.success ', null, Locale.CHINA);

2. 動態參數

start.ge.end = 開始日期{0}必須小于結束日期{1}!

String [] param = {startDate, endDate};String msg =getMessage('start.ge.end', param);@Autowiredprivate MessageSource messageSource;/** * 國際化 * * @param result * @return */public String getMessage(String result, Object[] params) { String message = ''; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { LOGGER.error('parse message error! ', e); } return message;}

補充一個方法,適用于類中無法獲取到MessageSource

/** * 國際化 * 注:通過@Autowired private MessageSource messageSource無法獲取 * * @param result * @return */public String getMessage(String result, Object[] params) { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setCacheSeconds(-1); messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name()); messageSource.setBasenames('/i18n/messages'); String message = ''; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { log.error('parse message error! ', e); } return message;}

總結

到此這篇關于spring boot國際化之MessageSource使用方法的文章就介紹到這了,更多相關springboot國際化MessageSource的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
国产综合久久一区二区三区