Index: lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java =================================================================== diff -u -r1f7e3b82231660a37539aa7f689cd8620f9a91c5 -r291d564dcefeaa129b756f00cfaf2ab610a406e9 --- lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java (.../MessageService.java) (revision 1f7e3b82231660a37539aa7f689cd8620f9a91c5) +++ lams_common/src/java/org/lamsfoundation/lams/util/MessageService.java (.../MessageService.java) (revision 291d564dcefeaa129b756f00cfaf2ab610a406e9) @@ -24,28 +24,83 @@ import org.springframework.context.NoSuchMessageException; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.support.MessageSourceAccessor; - +/** + * Service class to help Service bean get i18n value quickly. The locale information will get from LAMS_USER + * table. For more detail see org.lamsfoundation.lams.web.filter.LocaleFilter. + * + * @author Steve.Ni + * @version $Revision$ + * @see org.springframework.context.support.MessageSourceAccessor + */ public class MessageService { private MessageSourceAccessor messageAccessor; - private MessageSource messageSource; /** - * @return + * Set MessageSource from spring IoC. + * @param messageSource */ - public MessageSource getMessageSource() { - return messageSource; - } public void setMessageSource(MessageSource messageSource){ - this.messageSource = messageSource; + messageAccessor = new MessageSourceAccessor(messageSource); } + + /** + * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String) + * @param key + * @return + */ public String getMessage(String key){ String message; try { - messageAccessor = new MessageSourceAccessor(messageSource); message = messageAccessor.getMessage(key,LocaleContextHolder.getLocale()); } catch (NoSuchMessageException e) { message = "??" + key + "??"; } return message; } + /** + * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String, java.lang.String) + * @param key + * @param defaultMessage + * @return + */ + public String getMessage(String key, String defaultMessage){ + String message = defaultMessage; + try { + message = messageAccessor.getMessage(key,defaultMessage,LocaleContextHolder.getLocale()); + } catch (NoSuchMessageException e) { + message = defaultMessage; + } + return message; + } + /** + * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String, java.lang.Object[]) + * @param key + * @param args + * @return + */ + public String getMessage(String key, Object[] args){ + String message; + try { + message = messageAccessor.getMessage(key,args,LocaleContextHolder.getLocale()); + } catch (NoSuchMessageException e) { + message = "??" + key + "??"; + } + return message; + } + /** + * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String, java.lang.Object[], java.lang.String) + * @param key + * @param args + * @param defaultMessage + * @return + */ + public String getMessage(String key, Object[] args, String defaultMessage){ + String message = defaultMessage; + try { + message = messageAccessor.getMessage(key,args,LocaleContextHolder.getLocale()); + } catch (NoSuchMessageException e) { + message = defaultMessage; + } + return message; + } }