2013-02-27 10 views
16

mam moje ustawienie właściwości w app-servlet.xml z fasoli tak:Jak pokazać wartości z pliku właściwości w JSP w sprężynę MVC app

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

Większość czasu mam dostępu do właściwości lub w moich kontrolerami inne klasy takie jak to:

@Value("${dbtype}") 
public String dbType; 

Ale co, jeśli chcę użyć właściwości w pliku JSP i ominąć kontroler. Znaczenie Nie chcę, aby typ wartości przekazywany z kontrolera do strony JSP był atrybutem modelu.

Czy istnieje sposób dostępu do nieruchomości bezpośrednio w jsp?

+0

Sprawdź ten link http://forum.springsource.org/showthread.php?96715-Reading-values-stored-in-properties-file-from-JSP – nav0611

Odpowiedz

31

Wiosna config

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

JSP

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

W kontekście po prostu to zrobić:

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

tworzenia Właściwości Bean (tak samo jak @ nkjava.blogspot. com w jego answer). Ale to nie wszystko wymaga pracy.

Teraz musisz odsłonić tę fasolę na JSP. Istnieje kilka sposobów, aby to zrobić, zależy od typu mechanizmu rozpoznawania widoku. Istnieje rozwiązanie dla InternalResourceViewResolver - należy ustawić "exposeContextBeansAsAttributes" na wartość true i wypełnić "exposedContextBeanNames" z listą wymaganych komponentów bean.

Dla tiles również rozwiązanie.

Niż można po prostu użyć tego fasoli na stronie JSP. Przez EL na przykład:

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

Co można też zrobić to nie przywiązać do patrząc właściwości w jednym zastępczy nieruchomości, lub jeśli używasz java config i tylko uruchamianiu tego PropertySourcesPlaceholderConfigurer jest użyć obiektu środowiskową :

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

Uważam, że ten jest bardziej pomocny. Dzięki – kakabali

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

teraz to właściwościach File

site.name=Cool Bananas 

I tu idzie swoją JSP

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

Dziękujemy za określenie deklaracji biblioteki znaczników. Jest to zbyt często pomijane. – baraber

Powiązane problemy