如何在自定义库标记中使用Spring的资源包?

时间:2015-06-27 19:39:00

标签: java spring-mvc autowired resourcebundle

我的资源包在控制器和服务等方面运行良好,但不知怎的,我无法在自定义标记内访问它。

<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");

欢迎任何帮助!

0 个答案:

没有答案