在我的应用程序上下文中,我定义了属性文件:
<context:property-placeholder location="classpath:application.properties" />
我想在JSP页面上获取该文件中定义的属性的值。有没有办法做到这一点?
${something.myProperty}?
发布于 2010-10-14 22:07:14
PropertyPlaceholderConfigurer
只能解析Spring配置中的占位符(XML或注解)。在使用Properties
bean的Spring应用程序中非常常见。您可以通过以下方式从视图中访问它(假设您使用的是InternalResourceViewResolver
):
<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list><value>classpath:config.properties</value></list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<property name="exposedContextBeanNames">
<list><value>properties</value></list>
</property>
</bean>
然后,在您的JSP中,您可以使用${properties.myProperty}
或${properties['my.property']}
。
发布于 2013-08-29 20:52:41
在Spring3.1之后,您可以使用带有SpEL的<spring:eval />
标签,如下所示:
<spring:eval expression="@applicationProps['application.version']"
var="applicationVersion"/>
发布于 2012-01-26 20:47:01
要使用列表中可能不存在的多个位置,可以使用context:property-placeholder bean:
<beans:bean id="appProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<beans:property name="ignoreResourceNotFound" value="true" />
<beans:property name="locations">
<beans:list>
<beans:value>classpath:application.properties</beans:value>
<beans:value>classpath:environment.properties</beans:value>
<beans:value>classpath:environment-${env}.properties</beans:value>
</beans:list>
</beans:property>
</beans:bean>
https://stackoverflow.com/questions/3933862
复制相似问题