Как использовать свойство из файла свойств, указанного в PropertyPlaceholderConfigurer в JSP
В моем контексте приложения я определил файл свойств:
<context:property-placeholder location="classpath:application.properties" />
Я хочу получить значение свойства, определенного в этом файле на странице JSP. Есть ли способ сделать это способом
${something.myProperty}?
Ответы
Ответ 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;