如何将属性文件中的值提取到Jsp / tagx中

时间:2014-04-29 08:09:15

标签: java jsp spring-mvc

我正在维护一个应用程序,在几个100个Jsps和tagx文件中我需要替换一些硬编码字符串 - 替换值将从已经读入的属性文件驱动。

正在读取我的spring mvc app中的属性文件:

<context:property-placeholder location="classpath*:someProps.properties, someOther.properties" />

没有可以添加的id属性,我无法通过id获取值,因此该选项已经用完。

internet的唯一解决方案是声明PropertiesFactoryBean,然后使用spring eval读入jsp / tagx。像这样:

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="singleton" value="true" />
        <property name="properties">
            <props>
                <prop key="database.name">${database.name}</prop>
            </props>
        </property>
    </bean>

如果我需要阅读很多值(这个应用程序很快就会出现这种情况),这很快就会变得很麻烦。有没有其他方法可以在jsp / tagx文件中读取属性文件中的属性? 它还有助于我理解是否有人可以告诉我PropertiesFactoryBean和context:property-placeholder之间的区别?

Spring version 3.2.2.RELEASE

2 个答案:

答案 0 :(得分:1)

您可以通过propertyplaceholder在jsp中获取属性值,并在jsp中使用spring标记:在您的上下文中xml:

    <!-- PropertyPlaceHolder -->
    <util:properties id="propertyConfigurer" location="WEB-INF/test/someProps.properties"/>
    <context:property-placeholder properties-ref="propertyConfigurer"/>

在你的jsp中:

     <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
    ...
    <spring:eval expression="@propertyConfigurer.getProperty('your.property1')" />

答案 1 :(得分:0)

您可以尝试i18n,在spring-servlet.xml中添加配置信息:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!-- properties path -->                     
<property name="basename" value="messages" />              
<property name="useCodeAsDefaultMessage" value="true" />           

在jsp文件中,您只需添加:<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 然后你可以从.propertise文件中获取值,例如:

<spring:message code="hello" arguments="111,222" argumentSeparator=",">
祝你好运!