0
我有一個自定義的異常類,需要從屬性文件中讀取一些錯誤消息。但它似乎繼續變爲空。我甚至嘗試添加@Component,但仍然無法正常工作Spring MVC - 無法@Autowire消息源
@Component
public class FormValidationFailExceptionHolder {
@Autowired
private MessageSource messageSource;
...
public void someMethod(){
....
String message = messageSource.getMessage(errorid, msgargs, Locale.ENGLISH);
....
}
}
這裏是我的Spring配置
....
<context:component-scan base-package="simptex.my" />
....
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="useCodeAsDefaultMessage" value="false" />
<property name="basenames">
<list>
<value>classpath:mgmtlabels</value>
<value>classpath:error</value>
<value>classpath:PWMResources</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8" />
</bean>
我甚至試過在Spring配置XML顯式聲明豆,但仍返回空
<bean id="formValidationFailException" class="simptex.my.core.exception.FormValidationFailException">
<property name="messageSource" ref="messageSource" />
</bean>
這是我如何調用FormValidationFailException
public class Foo{
private HttpSession session;
....
public void fooMethod() {
session.setAttribute(CommonSessionKeys.FORM_VALIDATION_EXECEPTION_HOLDER, new FormValidationFailExceptionHolder("roledd", "E0001"));
}
}
@Controller
public class FooController {
@RequestMapping(value = "/xxxx")
public void fooMethodxxx() {
Foo foo = new Foo(session);
foo.fooMethod();
}
}
謝謝..我結束了使用「經典」的方式獲取標籤。有一個使用'ResourceBundleMessageSource' – vincent
vincent - 請你分享你如何解決這個問題。我無法在自定義的AuthenticationEntryPoint中自動調用MessageSource(ResourceBundleMessageSource) –