作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序上下文中使用 Spring 3 和 Spring 的属性占位符:<context:property-placeholder location="my.properties"/>
my.properties 包含:
key1=value1
key2=some JSP code ${some-model-attr}
my.properties
中的值还针对占位符进行评估,但在我的情况下,这些值包含 JSP EL,这会在 Spring 初始化期间导致“找不到属性”错误:
java.lang.IllegalArgumentException: Could not resolve placeholder 'some-model-attr'
key1=value1
key2=some JSP code #{'$'}{some-model-attr}
最佳答案
看起来不可能告诉 Spring 不要递归地评估占位符。
占位符由 org.springframework.util.PropertyPlaceholderHelper
评估其中(在 Spring 3 中)包含以下行:
// Recursive invocation, parsing placeholders contained in the placeholder key.
placeholder = parseStringValue(placeholder, placeholderResolver, visitedPlaceholders);
<context:property-placeholder>
只是构造
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
的一种便捷方式类,并且该类具有方法
setPlaceholderPrefix()
和
setPlaceholderSuffix()
.您可以使用这些方法将 Spring 占位符的语法更改为:
$[property]
${property}
key2=some JSP code ${some-model-attr}
关于spring - 如何在属性占位符中禁用属性值的插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153466/
我是一名优秀的程序员,十分优秀!