2013-02-27 3 views
16

나는이 같은 빈과 app-servlet.xml 내 속성을 설정 해요 :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로 모델 속성으로 전달되는 값 유형을 원하지 않는다는 의미입니다.

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

봄 설정

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

JSP

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

는이 작업을 수행. 자신의 com answer). 하지만이 모든 작업을 수행 할 필요는 없습니다.

이제이 bean을 JSP에 표시해야합니다. 보기 리졸버 유형에 따라이 작업을 수행 할 수있는 방법은 거의 없습니다. InternalResourceViewResolver에 대한 해결책이 있습니다. "exposeContextBeansAsAttributes"를 true로 설정하고 "exposedContextBeanNames"를 필수 빈의 목록으로 채워야합니다.

tiles도 해결책입니다.

JSP에서이 bean을 간단하게 사용할 수 있습니다. 예를 들어 EL 통해 :

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

당신은 또한 당신이 자바 설정을 사용하여 단지 PropertySourcesPlaceholderConfigurer를 인스턴스화하는 경우 그 또는, 하나의 속성 자리에 속성을보고 당신을 묶어하지 않는 수행 환경 개체를 사용하는 것입니다 수있는 것 :

<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