最近在学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>
再运行了一下,问题搞定,吃饭去...