2012-04-15 9 views
1

Ich entwickle eine einfache Spring-Anwendung, die meine universitäre Aufgabe ist. Es gibt 3 Konfigurationsdateien: web.xml, core-context.xml, dispatcher-servlet.xml und 1 Datei mit Standardeigenschaften, die messages.properties genannt wird und sich im Verzeichnis/WEB-INF/befindet.Spring ReloadableResourceBundleMessageSource Konfiguration

In meiner Anwendung habe ich die folgende Konfiguration von ReloadableResourceBundleMessageSource und es funktioniert gut:

Kern-context.xml

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basenames" value="/WEB-INF/messages" /> 
    <property name="useCodeAsDefaultMessage" value="true" /> 
</bean> 

web.xml

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:core-context.xml</param-value> 
</context-param> 
<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

Aber Es stellte sich heraus, dass meine Aufgabenanweisung besagt, dass ich konfigurieren sollte ReloadableResourceBundleMessageSource-Bean in der Dispatcher-Servlet.xml. Das Problem ist, dass, wenn ich die obige Konfiguration aus core-context.xml entferne und sie in dispatcher-servlet.xml platziere, meine Locals nicht mehr angezeigt werden.

Können Sie mir erklären, warum das Problem auftritt? Was ist ein Unterschied zwischen dem Setzen der Bean-Konfiguration in core-context.xml und dispatcher-servlet.xml?

Antwort

0

Sie haben Ihre Dispatcher-servlet.xml noch nicht veröffentlicht, aber ich glaube, dass sie nicht vom Spring-Container initialisiert wird, da sie nirgendwo deklariert wird. Wenn Sie eine andere Datei namens dispatcher-servlet.xml wie angegeben haben müssen, können Sie sie einfach in Ihre core-context.xml importieren. Dies sollte dein Problem lösen.

Verwandte Themen