为什么ApplicationContext的getMessage()没有读取.properties文件:Spring

时间:2017-02-10 23:37:44

标签: java spring

我正在浏览Spring的 MessageSource 在线教程。我无法在这段小代码中找出错误的地方。

司机班:

var seconds_left = 2;
var timerDiv = document.getElementById('timer_div');
var captcha = document.getElementById('captcha');
timerDiv.innerHTML = seconds_left;

var interval = setInterval(function() {
    timerDiv.innerHTML = seconds_left;
            seconds_left--;


    if (seconds_left < 0)
    {         
        timerDiv.style.display = "none";
       captcha.style.display = "block";
       clearInterval(interval);
    }

    }, 1000);

配置文件public class Driver { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Shape shape = (Shape) context.getBean("circle"); shape.draw(); System.out.println(context.getMessage("greeting",null, "Default greeting", null)); } }

spring.xml
  

mymessages.properties文件:

<context:component-scan base-package="model" /> 

<bean class="org.springframework.context.support.ResourceBundleMessageSource">

        <property name="basenames">
            <list>
                <value>mymessages</value>
            </list>
        </property>
</bean>

<bean id="point1" class="model.Point">
        <property name="x" value="20 " />
        <property name="y" value="0" />
    </bean>

当我运行greeting=hello! 方法时,以下是输出

main()

我的问题是,为什么drawing circle with Point (x = 20, y = 0) Default greeting 文件中提到的问候hello!没有打印出来?顺便说一下,我只将所有文件放在正确的目录中。

1 个答案:

答案 0 :(得分:1)

This帮我写了一个问题的答案。 在我的配置文件中,id = messageSource我没有在<bean>元素中提及<bean id = "messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>mymessages</value> </list> </property> </bean> 。正确的代码如下:

ApplicationContext
  

加载messageSource后,会自动搜索   上下文中定义的MessageSource bean。所以,豆必须有   名称T-SQL