如何在JSP中使用PropertyPlaceholderConfigurer中指定的属性文件中的属性

时间:2010-10-14 13:51:45

标签: java spring spring-3

在我的应用程序上下文中,我定义了属性文件:

<context:property-placeholder  location="classpath:application.properties" />

我想获得JSP页面上该文件中定义的属性的值。有没有办法以这种方式做到这一点

${something.myProperty}?

6 个答案:

答案 0 :(得分:38)

PropertyPlaceholderConfigurer只能解析Spring配置(XML或注释)中的占位符。在Spring应用程序中非常常见,使用Properties bean。您可以通过这种方式从视图中访问它(假设您使用的是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']}

答案 1 :(得分:6)

在Spring 3.1之后,您可以将<spring:eval />标记与SpEL一起使用,如下所示:

<spring:eval expression="@applicationProps['application.version']" 
             var="applicationVersion"/>

答案 2 :(得分:0)

使用列表中可能不存在的多个位置: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>

答案 3 :(得分:0)

要在视图中使用递归属性占位符扩展,您需要一个不同的解决方案,请看一下这个答案:

https://stackoverflow.com/a/10200249/770303

答案 4 :(得分:0)

`<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>`

答案 5 :(得分:-4)

这将显示当前架构的表(您已登录):

select table_name from user_tables order by table_name;

这将显示至少有选择权限的架构表:

select owner, table_name from all_tables where owner='<owner>' order by owner, table_name;