我的资源包在控制器和服务等方面运行良好,但不知怎的,我无法在自定义标记内访问它。
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:/spring/messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
以下是标记的一部分:
@Component
public class FormSection extends BodyTagSupport {
private static final long serialVersionUID = 1L;
@Autowired
private ReloadableResourceBundleMessageSource messageSource;
@Override
public int doStartTag() throws JspException {
try {
// messageSource causes a NULL POINTER here
messageSource.getMessage("name", null, new Locale("us")));
return EVAL_BODY_INCLUDE;
}
我收到NullPointerException; Autowire doenst work。我可以看到我的班级正在被扫描。
我也尝试通过实现ApplicationContextAware来使用applicationContext但是做了以下工作:
messageSource = (ReloadableResourceBundleMessageSource)applicationContext.getBean("messageSource");
欢迎任何帮助!