programing

Thymeleaf 및 Spring Boot에서 메시지를 표시하는 방법은 무엇입니까?

abcjava 2023. 7. 15. 00:28
반응형

Thymeleaf 및 Spring Boot에서 메시지를 표시하는 방법은 무엇입니까?

저는 Thymeleaf를 템플릿 엔진으로 사용하는 Spring Boot 웹 애플리케이션을 만들었습니다.구성했습니다.MessageSource하위 폴더에서 메시지를 찾으려면:

@Bean
public MessageSource messageSource() {
    final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();

    messageSource.setBasename("i18n/messages");
    messageSource.setFallbackToSystemLocale(false);
    messageSource.setCacheSeconds(0);

    return messageSource;
}

이 폴더에서 파일을 만들었습니다.messages_de.properties내용과 함께ticket.type.BUG=Fehler템플릿에서 다음과 같은 텍스트를 표시하려고 합니다.

<p th:text="#{ticket.type.BUG}">BUG</p>

그러나 페이지가 렌더링되면 다음과 같은 메시지가 나타납니다.

<p>??ticket.type.BUG_de_DE??</p>

제가 무엇을 빠뜨리고 있나요?추가로 콩을 구성해야 합니까?

추신:

'서버 측'에서 다음을 사용하여 메시지를 얻을 수 있습니다.MessageSource#getMessage("ticket.type.BUG", null, Locale.GERMANY).

Spring Boot을 사용하고 있기 때문에,MessageSource으로 구성되어 있습니다.이러한 설정은 에서 쉽게 변경할 수 있습니다.application.properties파일입니다. 제 경우에는 다음을 이 파일에 추가해야 했습니다.

spring.messages.basename=i18n/messages

그리고 이것을 당신의 것에 추가합니다.application.properties파일

#messages
spring.messages.basename=i18n/messages

파일을 위에서 지정한 대로 올바른 폴더에 저장합니다.

필요없습니다messageSource콩을

제가 i18n 메시지를 해결한 방법은 다음을 정의하는 것이었습니다.MessagesSource너와 같은 존재야.게다가 나는 그것을 무시해야 했습니다.getValidator()의 방법WebMvcConfigurerAdapter.

@Override
public Validator getValidator() {
    LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
    validator.setValidationMessageSource( messageSource() );
    return validator;
}

그 후에, 그것은 저에게 효과가 있었습니다.

파일이 있습니까?messages.properties(아니오_de폴백을 허용하기 위해 현재?작동합니까?브라우저가 로케일로 설정되어 있습니까?DE_de?

메시지 소스는 클래스 경로에 상대적입니다.

messageSource.setBasename("  classpath:i18n/messages");

여기 제가 참고한 타임리프와 봄에 대한 튜토리얼이 있습니다 = http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html

언급URL : https://stackoverflow.com/questions/29532172/how-to-display-messages-in-thymeleaf-and-spring-boot

반응형