java类org.springframework.context.NoSuchMessageException的实例源码

AbstractMessageSource.java 文件源码 项目:lams 阅读 23 收藏 0 点赞 0 评论 0
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
MessageHelper.java 文件源码 项目:helium 阅读 33 收藏 0 点赞 0 评论 0
public String getMessage(String[] keys, Object[] vars, Locale locale) {
    String msg = "???" + (keys.length > 0 ? keys[keys.length-1] : "") + "???";
    boolean found = false;
    int i = 0;
    while( ! found && i < keys.length) {        
        try {
            msg = messageSource.getMessage(
                    keys[i],
                    vars,
                    locale);
            found = true;
        } catch (NoSuchMessageException ex) {
            i++;
        }
    }
    if( ! found ) {
        String key = keys[keys.length-1]; 
        if (key.startsWith("enum.")){
            msg = key.substring(key.lastIndexOf(".") + 1);
        }           
    }
    return msg;
}
XmlPortletApplicationContextTests.java 文件源码 项目:spring4-understanding 阅读 25 收藏 0 点赞 0 评论 0
/**
 * Overridden in order to use MockPortletConfig
 * @see org.springframework.web.context.XmlWebApplicationContextTests#testWithoutMessageSource()
 */
@Test
@SuppressWarnings("resource")
public void withoutMessageSource() throws Exception {
    MockPortletContext portletContext = new MockPortletContext("");
    MockPortletConfig portletConfig = new MockPortletConfig(portletContext);
    XmlPortletApplicationContext pac = new XmlPortletApplicationContext();
    pac.setParent(root);
    pac.setPortletConfig(portletConfig);
    pac.setNamespace("testNamespace");
    pac.setConfigLocations(new String[] {"/org/springframework/web/portlet/context/WEB-INF/test-portlet.xml"});
    pac.refresh();
    try {
        pac.getMessage("someMessage", null, Locale.getDefault());
        fail("Should have thrown NoSuchMessageException");
    }
    catch (NoSuchMessageException ex) {
        // expected;
    }
    String msg = pac.getMessage("someMessage", null, "default", Locale.getDefault());
    assertEquals("Default message returned", "default", msg);
}
AbstractMessageSource.java 文件源码 项目:spring4-understanding 阅读 24 收藏 0 点赞 0 评论 0
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
ResourceBundleMessageSourceTests.java 文件源码 项目:spring4-understanding 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testReloadableResourceBundleMessageSourceWithInappropriateDefaultCharset() {
    ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();
    ms.setBasename("org/springframework/context/support/messages");
    ms.setDefaultEncoding("unicode");
    Properties fileCharsets = new Properties();
    fileCharsets.setProperty("org/springframework/context/support/messages_de", "unicode");
    ms.setFileEncodings(fileCharsets);
    ms.setFallbackToSystemLocale(false);
    try {
        ms.getMessage("code1", null, Locale.ENGLISH);
        fail("Should have thrown NoSuchMessageException");
    }
    catch (NoSuchMessageException ex) {
        // expected
    }
}
ResourceBundleMessageSourceTests.java 文件源码 项目:spring4-understanding 阅读 27 收藏 0 点赞 0 评论 0
@Test
public void testReloadableResourceBundleMessageSourceWithInappropriateEnglishCharset() {
    ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();
    ms.setBasename("org/springframework/context/support/messages");
    ms.setFallbackToSystemLocale(false);
    Properties fileCharsets = new Properties();
    fileCharsets.setProperty("org/springframework/context/support/messages", "unicode");
    ms.setFileEncodings(fileCharsets);
    try {
        ms.getMessage("code1", null, Locale.ENGLISH);
        fail("Should have thrown NoSuchMessageException");
    }
    catch (NoSuchMessageException ex) {
        // expected
    }
}
StaticMessageSourceTests.java 文件源码 项目:spring4-understanding 阅读 51 收藏 0 点赞 0 评论 0
@Test
public void messageSourceResolvable() {
    // first code valid
    String[] codes1 = new String[] {"message.format.example3", "message.format.example2"};
    MessageSourceResolvable resolvable1 = new DefaultMessageSourceResolvable(codes1, null, "default");
    assertTrue("correct message retrieved", MSG_TXT3_US.equals(sac.getMessage(resolvable1, Locale.US)));

    // only second code valid
    String[] codes2 = new String[] {"message.format.example99", "message.format.example2"};
    MessageSourceResolvable resolvable2 = new DefaultMessageSourceResolvable(codes2, null, "default");
    assertTrue("correct message retrieved", MSG_TXT2_US.equals(sac.getMessage(resolvable2, Locale.US)));

    // no code valid, but default given
    String[] codes3 = new String[] {"message.format.example99", "message.format.example98"};
    MessageSourceResolvable resolvable3 = new DefaultMessageSourceResolvable(codes3, null, "default");
    assertTrue("correct message retrieved", "default".equals(sac.getMessage(resolvable3, Locale.US)));

    // no code valid, no default
    String[] codes4 = new String[] {"message.format.example99", "message.format.example98"};
    MessageSourceResolvable resolvable4 = new DefaultMessageSourceResolvable(codes4);

    exception.expect(NoSuchMessageException.class);
    sac.getMessage(resolvable4, Locale.US);
}
XmlWebApplicationContextTests.java 文件源码 项目:spring4-understanding 阅读 25 收藏 0 点赞 0 评论 0
@Test
@SuppressWarnings("resource")
public void withoutMessageSource() throws Exception {
    MockServletContext sc = new MockServletContext("");
    XmlWebApplicationContext wac = new XmlWebApplicationContext();
    wac.setParent(root);
    wac.setServletContext(sc);
    wac.setNamespace("testNamespace");
    wac.setConfigLocations(new String[] {"/org/springframework/web/context/WEB-INF/test-servlet.xml"});
    wac.refresh();
    try {
        wac.getMessage("someMessage", null, Locale.getDefault());
        fail("Should have thrown NoSuchMessageException");
    }
    catch (NoSuchMessageException ex) {
        // expected;
    }
    String msg = wac.getMessage("someMessage", null, "default", Locale.getDefault());
    assertTrue("Default message returned", "default".equals(msg));
}
RestExceptionHandler.java 文件源码 项目:easy-mybatis 阅读 25 收藏 0 点赞 0 评论 0
/**
 * 解析错误信息
 * TODO 国际化错误信息应该异常中处理
 * @param fieldError
 * @return
 */
private String resolveLocalizedErrorMessage(org.springframework.validation.FieldError fieldError) {
    Locale currentLocale =  LocaleContextHolder.getLocale();
    String localizedErrorMessage = null;
    if(messageSource != null){
        try {
            localizedErrorMessage = messageSource.getMessage(fieldError.getCode(), fieldError.getArguments(), currentLocale);
        }catch (NoSuchMessageException noSuchMessageException){
            logger.debug(noSuchMessageException);
            noSuchMessageException.printStackTrace();
        }
    }
    //If the message was not found, return the most accurate field error code instead.
    //You can remove this check if you prefer to get the default error message.
    if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
        String[] fieldErrorCodes = fieldError.getCodes();
        localizedErrorMessage = fieldErrorCodes[0];
    }

    return localizedErrorMessage;
}
AbstractMessageSource.java 文件源码 项目:my-spring-cache-redis 阅读 23 收藏 0 点赞 0 评论 0
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
AbstractMessageSource.java 文件源码 项目:spring 阅读 24 收藏 0 点赞 0 评论 0
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
SpringAwareMessageMessageInterpolator.java 文件源码 项目:springboot-shiro-cas-mybatis 阅读 26 收藏 0 点赞 0 评论 0
@Override
public String interpolate(final String s, final Context context, final Locale locale) {
    try {
        return this.messageSource.getMessage(s,
                context.getConstraintDescriptor().getAttributes().values().toArray(
                new Object[context.getConstraintDescriptor().getAttributes().size()]), locale);
    } catch (final NoSuchMessageException e) {
        return this.defaultMessageInterpolator.interpolate(s, context, locale);
    }
}
SpringAwareMessageMessageInterpolator.java 文件源码 项目:springboot-shiro-cas-mybatis 阅读 25 收藏 0 点赞 0 评论 0
@Override
public String interpolate(final String s, final Context context, final Locale locale) {
    try {
        return this.messageSource.getMessage(s,
                context.getConstraintDescriptor().getAttributes().values().toArray(
                new Object[context.getConstraintDescriptor().getAttributes().size()]), locale);
    } catch (final NoSuchMessageException e) {
        return this.defaultMessageInterpolator.interpolate(s, context, locale);
    }
}
SpringAwareMessageMessageInterpolator.java 文件源码 项目:cas-5.1.0 阅读 27 收藏 0 点赞 0 评论 0
@Override
public String interpolate(final String s, final Context context, final Locale locale) {
    try {
        return this.messageSource.getMessage(s,
                context.getConstraintDescriptor().getAttributes().values().toArray(
                new Object[context.getConstraintDescriptor().getAttributes().size()]), locale);
    } catch (final NoSuchMessageException e) {
        return this.defaultMessageInterpolator.interpolate(s, context, locale);
    }
}
MessageResourceServiceImpl.java 文件源码 项目:EatDubbo 阅读 22 收藏 0 点赞 0 评论 0
public String get(String key, Object... args) {
    try {
        if (messageSource != null) {
            return messageSource.getMessage(key, args, key, LocaleUtil.getLocale());
        }
        return key;
    } catch (NoSuchMessageException e) {
        return key;
    }
}
SpringAwareMessageMessageInterpolator.java 文件源码 项目:cas4.0.x-server-wechat 阅读 29 收藏 0 点赞 0 评论 0
public String interpolate(final String s, final Context context, final Locale locale) {
    try {
        return this.messageSource.getMessage(s,
                context.getConstraintDescriptor().getAttributes().values().toArray(
                new Object[context.getConstraintDescriptor().getAttributes().size()]), locale);
    } catch (final NoSuchMessageException e) {
        return this.defaultMessageInterpolator.interpolate(s, context, locale);
    }
}
MessageResourceServiceImpl.java 文件源码 项目:dubbo2 阅读 24 收藏 0 点赞 0 评论 0
public String get(String key, Object... args) {
    try {
        if (messageSource != null) {
            return messageSource.getMessage(key, args, key, LocaleUtil.getLocale());
        }
        return key;
    } catch (NoSuchMessageException e) {
        return key;
    }
}
AbstractService.java 文件源码 项目:TARA-Server 阅读 27 收藏 0 点赞 0 评论 0
protected String getMessage(String key, String defaultMessageKey, Object... parameters) {
    try {
        return this.messageSource.getMessage(key, parameters, LocaleContextHolder.getLocale());
    } catch (NoSuchMessageException e) {
        this.log.warn("No message key <{}> found, defaulting to <{}> ", key, defaultMessageKey);
        return this.getMessage(defaultMessageKey);
    }
}
SpringAwareMessageMessageInterpolator.java 文件源码 项目:cas-server-4.2.1 阅读 24 收藏 0 点赞 0 评论 0
@Override
public String interpolate(final String s, final Context context, final Locale locale) {
    try {
        return this.messageSource.getMessage(s,
                context.getConstraintDescriptor().getAttributes().values().toArray(
                new Object[context.getConstraintDescriptor().getAttributes().size()]), locale);
    } catch (final NoSuchMessageException e) {
        return this.defaultMessageInterpolator.interpolate(s, context, locale);
    }
}
SakaiExternalLogicImpl.java 文件源码 项目:kaltura-ce-sakai-extension 阅读 28 收藏 0 点赞 0 评论 0
public String getI18nMessage(String key, Object[] args) {
    String msg = "";
    if (StringUtils.isBlank(key)) {
        log.warn("Missing i18n key, returning warning message");
        msg = "{ERROR: MISSING KEY}";
    } else {
        try {
            msg = messageSource.getMessage(key, args, null);
        } catch (NoSuchMessageException e) {
            log.warn("Invalid i18n key ("+key+") could not be found, returning warning message");
            msg = "{ERROR: INVALID KEY: "+key+"}";
        }
    }
    return msg;
}
MessageSourceResourceBundle.java 文件源码 项目:lams 阅读 26 收藏 0 点赞 0 评论 0
/**
 * This implementation resolves the code in the MessageSource.
 * Returns {@code null} if the message could not be resolved.
 */
@Override
protected Object handleGetObject(String key) {
    try {
        return this.messageSource.getMessage(key, null, this.locale);
    }
    catch (NoSuchMessageException ex) {
        return null;
    }
}
MessageSourceResourceBundle.java 文件源码 项目:lams 阅读 24 收藏 0 点赞 0 评论 0
/**
 * This implementation checks whether the target MessageSource can resolve
 * a message for the given key, translating {@code NoSuchMessageException}
 * accordingly. In contrast to ResourceBundle's default implementation in
 * JDK 1.6, this does not rely on the capability to enumerate message keys.
 */
@Override
public boolean containsKey(String key) {
    try {
        this.messageSource.getMessage(key, null, this.locale);
        return true;
    }
    catch (NoSuchMessageException ex) {
        return false;
    }
}
DelegatingMessageSource.java 文件源码 项目:lams 阅读 25 收藏 0 点赞 0 评论 0
@Override
public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
    if (this.parentMessageSource != null) {
        return this.parentMessageSource.getMessage(code, args, locale);
    }
    else {
        throw new NoSuchMessageException(code, locale);
    }
}
DelegatingMessageSource.java 文件源码 项目:lams 阅读 27 收藏 0 点赞 0 评论 0
@Override
public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
    if (this.parentMessageSource != null) {
        return this.parentMessageSource.getMessage(resolvable, locale);
    }
    else {
        if (resolvable.getDefaultMessage() != null) {
            return renderDefaultMessage(resolvable.getDefaultMessage(), resolvable.getArguments(), locale);
        }
        String[] codes = resolvable.getCodes();
        String code = (codes != null && codes.length > 0 ? codes[0] : null);
        throw new NoSuchMessageException(code, locale);
    }
}
AbstractMessageSource.java 文件源码 项目:lams 阅读 26 收藏 0 点赞 0 评论 0
@Override
public final String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
    String msg = getMessageInternal(code, args, locale);
    if (msg != null) {
        return msg;
    }
    String fallback = getDefaultMessage(code);
    if (fallback != null) {
        return fallback;
    }
    throw new NoSuchMessageException(code, locale);
}
OutputFactory.java 文件源码 项目:lams 阅读 26 收藏 0 点赞 0 评论 0
/**
    * Get the I18N description for this key. If the tool has supplied a messageService, then this is used to look up
    * the key and hence get the text. Otherwise if the tool has supplied a I18N languageFilename then it is accessed
    * via the shared toolActMessageService. If neither are supplied or the key is not found, then any "." in the name
    * are converted to space and this is used as the return value.
    *
    * This is normally used to get the description for a definition, in whic case the key should be in the format
    * output.desc.[definition name], key = definition name and addPrefix = true. For example a definition name of
    * "learner.mark" becomes output.desc.learner.mark.
    *
    * If you want to use this to get an arbitrary string from the I18N files, then set addPrefix = false and the
    * output.desc will not be added to the beginning.
    */
   protected String getI18NText(String key, boolean addPrefix) {
String translatedText = null;

MessageSource tmpMsgSource = getMsgSource();
if (tmpMsgSource != null) {
    if (addPrefix) {
    key = KEY_PREFIX + key;
    }
    Locale locale = LocaleContextHolder.getLocale();
    try {
    translatedText = tmpMsgSource.getMessage(key, null, locale);
    } catch (NoSuchMessageException e) {
    log.warn("Unable to internationalise the text for key " + key
        + " as no matching key found in the msgSource");
    }
} else {
    log.warn("Unable to internationalise the text for key " + key
        + " as no matching key found in the msgSource. The tool's OutputDefinition factory needs to set either (a) messageSource or (b) loadedMessageSourceService and languageFilename.");
}

if (translatedText == null || translatedText.length() == 0) {
    translatedText = key.replace('.', ' ');
}

return translatedText;
   }
MessageService.java 文件源码 项目:lams 阅读 35 收藏 0 点赞 0 评论 0
/**
    * @see org.springframework.context.support.MessageSourceAccessor#getMessage(java.lang.String)
    * @param key
    * @return
    */
   public String getMessage(String key) {
String message;
try {
    message = messageSource.getMessage(key, null, LocaleContextHolder.getLocale());
} catch (NoSuchMessageException e) {
    message = "??" + key + "??";
}
return message;
   }
MessageService.java 文件源码 项目:lams 阅读 39 收藏 0 点赞 0 评论 0
/**
    * @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 = messageSource.getMessage(key, null, defaultMessage, LocaleContextHolder.getLocale());
} catch (NoSuchMessageException e) {
    message = defaultMessage;
}
return message;
   }
MessageService.java 文件源码 项目:lams 阅读 27 收藏 0 点赞 0 评论 0
/**
    * @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 = messageSource.getMessage(key, args, LocaleContextHolder.getLocale());
} catch (NoSuchMessageException e) {
    message = "??" + key + "??";
}
return message;
   }
MessageService.java 文件源码 项目:lams 阅读 37 收藏 0 点赞 0 评论 0
/**
    * @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 = messageSource.getMessage(key, args, defaultMessage, LocaleContextHolder.getLocale());
} catch (NoSuchMessageException e) {
    message = defaultMessage;
}
return message;
   }


问题


面经


文章

微信
公众号

扫码关注公众号