使用Spring标签进行页面国际化

最近在学Spring,在使用Spring标签进行页面国际化,出现了一点小插曲,

1、web.xml配置好了

 <!--spring 标签库-->
  <jsp-config>
 <taglib>
  <taglib-uri>/spring</taglib-uri>
  <taglib-location>/WEB-INF/spring.tld</taglib-location>
 </taglib>
 <taglib>
  <taglib-uri>/spring-form</taglib-uri>
  <taglib-location>/WEB-INF/spring-form.tld</taglib-location>
 </taglib>
 </jsp-config>

2、配置Spring资源库

<!--配置 spring 资源库-->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
 <property name="basename">
  <value>com.demo.spring.resources.ApplicationResources</value>
 </property>
</bean>

3、资源文件也都创建好了,如下

ApplicationResources.properties

ApplicationResources_en.properties

ApplicationResources_zh_CN.properties

4、页面也都设计好了,

可是运行起来就报错,如下

运行结果报错:

java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext
org.springframework.web.struts.DelegatingActionUtils.findRequiredWebApplicationContext(java:148)
org.springframework.web.struts.DelegatingActionProxy.getWebApplicationContext(java:139)
org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:120)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
苦恼了很久,最后修改方法如下,
在applicationContext.xml中加入
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml</param-value>
 </context-param>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
再运行了一下,问题搞定,吃饭去...
posted @ 2011-09-25 17:44  王子泰  阅读(1472)  评论(0编辑  收藏  举报