我正在浏览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!
没有打印出来?顺便说一下,我只将所有文件放在正确的目录中。
答案 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
。