2013-02-27 10 views
16

in JSP Werte von Immobilien-Datei zeigen Ich gründe meine Eigenschaften in app-servlet.xml mit einer Bohne wie folgt aus:Wie in einer Feder MVC-app

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
      <property name="location" value="/WEB-INF/my.properties"></property> 
    </bean> 

Die meiste Zeit greife ich auf die Eigenschaften in meinem Controller oder Andere Klassen wie folgt:

Aber was, wenn ich eine Eigenschaft in einer JSP-Datei verwenden und den Controller umgehen möchte. Bedeutung Ich möchte nicht, dass der Werttyp als Modellattribut vom Controller an die JSP übergeben wird.

Gibt es eine Möglichkeit Eigenschaften in einer jsp direkt zugreifen?

+0

diesen Link Check http://forum.springsource.org/showthread.php?96715-Reading-values-stored-in-properties-file-from-JSP – nav0611

Antwort

31

Frühling Config

<util:properties id="propertyConfigurer" 
        location="classpath:yourPropertyFileClasspathHere "/> 
<context:property-placeholder properties-ref="propertyConfigurer" /> 

jsp

<spring:eval expression="@propertyConfigurer.getProperty('propertyNameHere')" /> 
1

Im Kontext tun nur dies:

<util:properties 
    id="propertyConfigurer" 
    location="classpath:yourPropertyFileClasspathHere" 
/> 
<context:property-placeholder properties-ref="propertyConfigurer" /> 

für Bohne (das gleiche wie @ nkjava.blogspot Eigenschaften zu schaffen. com in seinem answer). Aber das ist nicht alles Arbeit brauchen todo.

Jetzt müssen Sie diese Bohne JSP belichten. Es gibt wenige Möglichkeiten, dies zu tun, hängt vom Typ des View Resolvers ab. Es gibt eine Lösung für InternalResourceViewResolver - Sie müssen "exposeContextBeansAsAttributes" auf "true" setzen und "exposedContextBeanNames" mit einer Liste der erforderlichen Beans füllen.

Für tiles sind auch Lösung.

Als Sie einfach diese Bohne in Ihrer JSP verwenden können. Via EL zum Beispiel:

${propertyConfigurer['my.string.from.prop.file']} 
11

Was können Sie auch tun, dass Sie nicht binden zu aufzublicken Eigenschaften in einer einzigen Eigenschaft Platzhalter, oder wenn Sie Java-Konfiguration verwenden und nur ein PropertySourcesPlaceholderConfigurer Instanziierung sind das Umwelt-Objekt verwenden :

<spring:eval expression="@environment.getProperty('application_builtBy')" /> 
+0

Ich finde das eine hilfreicher. Danke – kakabali

8
<bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" 
    id="messageSource" 
    p:basenames="WEB-INF/i18n/site" 
    p:fallbackToSystemLocale="false"/> 

Nun ist dies Ihre Dateieigenschaften

site.name=Cool Bananas 

Und hier geht Ihr JSP

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> 
<html> 
    <head> 
    <title><spring:message code="site.name"/></title> 
    </head> 
    <body> 
    </body> 
</html> 
+0

Danke für die Angabe der Tag-Bibliothek Deklaration. Dies wird viel zu oft weggelassen. – baraber