我想将应用程序消息外部化到属性文件。我正在使用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" />
我的信息是
message.myMessage = Couldn't find resource for customer id {0} and business unit {1}
使用java文件中的参数读取此消息的最佳方法是什么?有没有其他方法来外化消息。
答案 0 :(得分: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在属性文件中获取键值。
答案 1 :(得分:1)
它依赖于,存在不同的方式,直接在jsp中,在表单验证过程中等。
例如
属性中的消息:
msg=My message {0} and {1}.
在你的jsp中:
<spring:message code="msg"
arguments="${value1},${value2}"
htmlEscape="false"/>