Giriş
Bu sınıf org.springframework.context.MessageSource arayüzünü gerçekleştirir ve
Bu sınıf org.springframework.context.MessageSource arayüzünü gerçekleştirir ve
messages_en.properties,
messages_kn.properties,
messages_fr.properties
gibi dosyaları okur
Bu sınıfı kullanırken Locale nesnesini belirtmek gerekir.
getMessage metodu - key + parameters + Locale
Açıklaması şöyle
Açıklaması şöyle
The getMessage() takes the property name as the first parameter. The second parameter is null, because the messsage takes no parameters. The third parameter is the locale.
Örnek
Şöyle yaparız
@Component public class ApplicationConfiguration { @Autowired ResourceBundleMessageSource messageSource; @PostConstruct public void init(){ String welcome = messageSource.getMessage("welcome", null, Locale.FRANCE)); } }
Örnek
İngilizce labels.properties şöyle olsun
l1=Earthl2=Hello {0}, how are you?
logger.info("{}", messageSource.getMessage("l2", new Object[] {"Paul Smith"},Locale.GERMAN));logger.info("{}", messageSource.getMessage("l2", new Object[] {"Paul Smith"},Locale.ENGLISH));
Çıktı olarak şunu alırız
22:08:27.984 INFO com.zetcode.Application - Hallo Paul Smith, wie gehts?22:08:27.984 INFO com.zetcode.Application - Hello Paul Smith, how are you?
Örnek
Şöyle yaparız.
Örnek
for (Object object : bindingResult.getAllErrors()) {
if(object instanceof FieldError) {
FieldError fieldError = (FieldError) object;
// Use null for second parameter if you do not use i18n
String message = messageSource.getMessage(fieldError, null);
}
}
setBasename metoduÖrnek
Elimizde şöyle bir application.properties olsun
# Whether to always apply the MessageFormat rules, parsing even messages without arguments.spring.messages.always-use-message-format=false# Whether to fall back to the system default Locale, if no files for a specific Locale have
# been found.spring.messages.fallback-to-system-locale=true# Whether to use the message code as the default message instead of throwing a
#"NoSuchMessageException". Recommended during development only.spring.messages.use-code-as-default-message=false
Şöyle yaparız
@Beanpublic ResourceBundleMessageSource messageSource() {ResourceBundleMessageSource source = new ResourceBundleMessageSource();source.setDefaultEncoding("UTF-8");source.setBasename("messages");source.setCacheSeconds(600);return source;}
Örnek
Şöyle yaparız.
XML ile şöyle yaparız.
Şöyle yaparız.
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource resource = new ResourceBundleMessageSource();
resource.setBasename("message");
return resource;
}
ÖrnekXML ile şöyle yaparız.
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="ValidationMessages"/>
</bean>
Hiç yorum yok:
Yorum Gönder