如何转义 SpEL 中的值?

发布于 2024-10-04 15:45:36 字数 247 浏览 4 评论 0原文

我正在 XML 中编写一些 SpEL 语句,但无法让解析器确定何时需要转义字符。

我尝试了以下操作:

<... property="someProperty" value="#{ someBean.aMethodOnTheBean('st\'ring') }" />

但是,添加 \' 似乎并没有转义单引号,并且我不断收到解析器异常。

有什么办法可以逃避这些价值观吗?

I am writing some SpEL statements in XML, and I can't get the parser to determine when I need to escape a character.

I've attempted the following:

<... property="someProperty" value="#{ someBean.aMethodOnTheBean('st\'ring') }" />

However adding in the \' does not seem to escape that single quote and I keep receiving a parser exception.

Is there any way to escape these values?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吾家有女初长成 2024-10-11 15:45:36

来自 文档

“将单引号本身放入
字符串使用两个单引号
字符。”

表达式 = 'something = ''' + someMethod.getValue + ''''

From the documentation:

"To put a single quote itself in a
string use two single quote
characters."

expression = 'something = ''' + someMethod.getValue + ''''

他夏了夏天 2024-10-11 15:45:36

我修改为:

.... value="#{ someBean.aMethodOnTheBean("st'ring") }" 

这有效,我错误地记得之前使用双引号将字符串值输入到 SpEL 函数时遇到了问题。

下面是模式定义:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
       default-lazy-init="true"
       default-init-method="initialize">

XML 在 Eclipse 中正确验证。然而,我的简化示例是无效的——我很抱歉,并且很好。我实际上是这样设置值的:

<bean id="someBean" class="someClass">
    <property name="someList">
        <list>
            <value>"#{ anotherBean.methodOnBean("some'String") }"</value>
        </list>
    </property>
</bean>

I modified to:

.... value="#{ someBean.aMethodOnTheBean("st'ring") }" 

This works, I remembered incorrectly that I had issues when using a double quote to input a string value into a SpEL function prior.

Below is the schema definition:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
       default-lazy-init="true"
       default-init-method="initialize">

The XML validates properly in eclipse. However my simplified example was not valid -- my apologies and good catch. I am actually setting the value like this:

<bean id="someBean" class="someClass">
    <property name="someList">
        <list>
            <value>"#{ anotherBean.methodOnBean("some'String") }"</value>
        </list>
    </property>
</bean>
风吹雪碎 2024-10-11 15:45:36

FWIW,SpEL 从 3.2 版开始支持双引号。
SPR-9620

FWIW, SpEL has support for double-quotes as of version 3.2.
SPR-9620

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文