Как использовать свойство из файла свойств, указанного в PropertyPlaceholderConfigurer в JSP - программирование
Подтвердить что ты не робот

Как использовать свойство из файла свойств, указанного в PropertyPlaceholderConfigurer в JSP

В моем контексте приложения я определил файл свойств:

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

Я хочу получить значение свойства, определенного в этом файле на странице JSP. Есть ли способ сделать это способом

${something.myProperty}?
4b9b3361

Ответ 1

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']}.

Ответ 2

После Spring 3.1 вы можете использовать тег <spring:eval /> с SpEL следующим образом:

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

Ответ 3

Использовать несколько мест в списке, который может отсутствовать, как это можно сделать с помощью контекста: 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>

Ответ 4

Чтобы использовать расширение рекурсивных свойств в представлении, вам нужно другое решение, посмотрите на этот ответ:

fooobar.com/questions/54401/...

Ответ 5

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

Ответ 6

Это покажет вам таблицы текущей схемы (которые вы вошли в систему):

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;