0

我想将应用程序消息外部化到属性文件。我正在使用 Spring 加载属性文件。

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 <property name="locations">
  <list>      
     <value>classpath:applicationmessage.properties</value>      
  </list>
 </property>
 <property name="ignoreResourceNotFound" value="true" />

我有 para 的消息

message.myMessage = Couldn't find resource for customer id {0} and business unit {1}

使用 java 文件中的参数读取此消息的最佳方法是什么?是否有任何其他方法可以将消息外部化。

4

2 回答 2

2

这取决于,存在不同的方式来做,直接在jsp中,在表单验证过程中等等。

例如

属性中的消息:

msg=My message {0} and {1}.

在你的jsp中:

<spring:message code="msg" 
                arguments="${value1},${value2}" 
                htmlEscape="false"/>

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/spring.tld.html#spring.tld.message

于 2013-11-07T07:14:32.787 回答
1

嗨,有几种方法可以从 spring 获取属性消息。

方式1:

<util:properties id="Properties" location="classpath:config/taobaoConfig.properties" />

在 spring.xml 中添加这个

在你的 java 文件中。您创建以下属性。

 @Resource(name = "Properties")
private Properties serverProperties;

属性文件中的键值将在 serverProperties 属性中。

方式2:

创建一个属性容器 bean

<bean id="propertyUtil" class="com.PropertiesUtil">
    <property name="locations">
        <list>
            <value>/WEB-INF/classes/datasource.properties</value>
            <value>/WEB-INF/classes/fileDef.properties</value>
        </list>
    </property>
</bean>

com.PropertiesUtil 的代码

    public class PropertiesUtil extends PropertyPlaceholderConfigurer {
private Properties properties;

@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) {
    super.processProperties(beanFactory, props);
    this.properties = props;
}

/**
 * Get property from properties file.
 * @param name property name
 * @return property value
 */
public String getProperty(final String name) {
    return properties.getProperty(name);
}
}

您可以使用此容器 bean 来获取属性文件中的键值。

于 2013-11-07T05:34:11.603 回答