2013-02-27 27 views
16

मैं इस तरह एक सेम के साथ app-servlet.xml में मेरे गुण सेट कर रहा हूं:एक वसंत में JSP में संपत्ति फ़ाइल से मूल्यों को दिखाने के लिए कैसे MVC अनुप्रयोग

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

अधिकांश समय मैं अपने नियंत्रकों में गुण का उपयोग या इस तरह अन्य वर्गों:

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

लेकिन क्या मैं एक JSP फ़ाइल में एक संपत्ति का उपयोग करना चाहते हैं और नियंत्रक बायपास यदि। मतलब मैं नहीं चाहता कि मूल्य प्रकार नियंत्रक से जेएसपी को एक मॉडल विशेषता के रूप में पारित किया जा रहा हो।

क्या एक jsp में सीधे गुणों तक पहुंचने का कोई तरीका है? गुण सेम (@ nkjava.blogspot के रूप में ही बनाने के लिए

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

:

+0

जांच के लिए इस लिंक चला जाता है http://forum.springsource.org/showthread.php?96715-Reading-values-stored-in-properties-file-from-JSP – nav0611

उत्तर

31

स्प्रिंग config

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

jsp

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

संदर्भ में सिर्फ यह करते हैं। उसके में कॉम answer)। लेकिन यह सभी काम करने की ज़रूरत नहीं है।

अब आपको इस बीन को जेएसपी में बेनकाब करने की आवश्यकता है। ऐसा करने के कुछ तरीके हैं, दृश्य रिज़ॉल्यूवर के प्रकार पर निर्भर करता है। InternalResourceViewResolver के लिए समाधान है - आपको "exposeContextBeansAsAttributes" को सत्य में सेट करने और आवश्यक बीन्स की सूची के साथ "exposedContextBeanNames" को पॉप्युलेट करने की आवश्यकता है।

tiles के लिए समाधान भी हैं।

आप अपने जेएसपी में बस इस बीन का उपयोग कर सकते हैं। के माध्यम से उदाहरण के लिए ईएल:

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

आप भी अगर आप जावा config का उपयोग कर रहे हैं और सिर्फ एक PropertySourcesPlaceholderConfigurer instantiating है कि एक ही संपत्ति प्लेसहोल्डर में गुण देख करने के लिए आप टाई नहीं है, या ऐसा वातावरण वस्तु का उपयोग कर सकते हैं क्या है :

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

मुझे यह एक और मददगार लगता है। धन्यवाद – kakabali

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

अब इस अपने गुण फ़ाइल है

site.name=Cool Bananas 

और यहाँ अपने JSP

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

टैग लाइब्रेरी घोषणा निर्दिष्ट करने के लिए धन्यवाद। यह अक्सर छोड़ दिया जाता है। – baraber

संबंधित मुद्दे