Как показать значения из файла свойств в JSP в приложении spring MVC
Я устанавливаю свои свойства в app-servlet.xml
с помощью bean следующим образом:
<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?
Ответы
Ответ 1
Spring config
<util:properties id="propertyConfigurer"
location="classpath:yourPropertyFileClasspathHere "/>
<context:property-placeholder properties-ref="propertyConfigurer" />
JSP
<spring:eval expression="@propertyConfigurer.getProperty('propertyNameHere')" />
Ответ 2
То, что вы также можете сделать, не связывает вас с поиском свойств в одном заполнителе свойств, или если вы используете конфигурацию java и просто создаете экземпляр PropertySourcesPlaceholderConfigurer, используйте объект среды:
<spring:eval expression="@environment.getProperty('application_builtBy')" />
Ответ 3
<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>
Ответ 4
В контексте просто сделайте следующее:
<util:properties
id="propertyConfigurer"
location="classpath:yourPropertyFileClasspathHere"
/>
<context:property-placeholder properties-ref="propertyConfigurer" />
для создания свойств bean (так же, как @nkjava.blogspot.com в ответе ).
Но это не все, что нужно для работы.
Теперь вам нужно выставить этот bean в JSP.
Есть несколько способов сделать это, зависит от типа распознавателя. Существует решение для InternalResourceViewResolver - вам нужно установить для параметра "exposeContextBeansAsAttributes" значение true и заполнить "visibleContextBeanNames" со списком необходимых beans.
Для tiles также есть решение.
Чем вы можете просто использовать этот bean в своем JSP. Например, через EL:
${propertyConfigurer['my.string.from.prop.file']}