首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从application.properties访问messages.properties

从application.properties访问messages.properties
EN

Stack Overflow用户
提问于 2016-10-18 12:47:14
回答 3查看 2.4K关注 0票数 0

我需要访问application.properties在messages.properties中的属性:

application.properties

代码语言:javascript
复制
max-size=3

messages.properties

代码语言:javascript
复制
alert.error=You can only save {max-size} items.

不起作用:

代码语言:javascript
复制
{max-size}, #{max-size}, ${max-size}

我知道this线程,但我需要它在任何Java之外。

更新:方法在application.properties文件中工作,但在application.properties和messages.properties之间不起作用。不是应该有命令吗?如果文件A有密钥a,但是当首先解析文件B时,A在B中不可用,是吗?

来自我的pom.xml的片段:

代码语言:javascript
复制
<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>

"#{alert.error(${@environment.getProperty('max-size')})}“

EN

回答 3

Stack Overflow用户

发布于 2016-10-18 13:45:02

要么使用构建工具(Maven/Gradle/.)替换它,要么在消息中使用参数,如下所示:

代码语言:javascript
复制
alert.error=You can only save {0} items.

现在您可以自动生成MessageSource并检索您的maxSize

代码语言:javascript
复制
@Autowired
private MessageSource messageSource;
@Value("${max-size}")
private int maxSize;

然后你就可以这样使用它:

代码语言:javascript
复制
messageSource.getMessage("alert.error", new Object[]{maxSize}, locale);

此解决方案允许您将您的消息用于其他大小,而不是只使用3。

如果你想在你的观点中使用它(如。(使用Thymeleaf),您可以:

代码语言:javascript
复制
<p th:text="#{alert.error(${@environment.getProperty('max-size')})}"></p>
票数 4
EN

Stack Overflow用户

发布于 2016-10-18 12:58:17

如果您正在构建maven,您可以在构建时过滤message.properties。

https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

票数 1
EN

Stack Overflow用户

发布于 2016-10-18 13:15:25

您可以通过maven调用资源插件目标https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html来实现。

其中messages.properties放在src/main/resources中。

代码语言:javascript
复制
<build>
        <filters>
            <filter>src/main/resources/application.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

调用mvn resources:resources

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40108713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档