当前位置: 首页 > 知识库问答 >
问题:

在SpEL中转义|(管道)

罗绪
2023-03-14

我希望有一个非常快速的简单答案,我在这里阅读了一些其他问题,这些问题参考了SpEL和转义序列,但仍然没有成功。

我想使用@Value和SpEL将属性拆分为字符串列表。属性将是:

12345|12345|12345

所以我需要在管道字符上进行拆分,我可以使用<code>在Java中进行拆分。split(\\|)以成功转义管道字符。我尝试过没有斜杠,2个斜杠和4个斜杠,但都不成功。是否可以使用以下代码在管道上拆分?我的客户无论出于什么原因都想继续使用管道。。。

@Value("#{'${list.of.blocked.people}'.split('\\|')}")
private List<String> myBlockedPeopleList;

谢谢。

这里有一个链接,指向让我走到这一步的问题,以供参考。

从属性文件中读取列表并加载Spring注释值

我也尝试过查看Spring Docs,但我在他们的纪录片中找不到任何关于逃生管道的参考资料。

SpEL上的Spring文档

共有1个答案

姚煜
2023-03-14

在这里的一个web开发论坛上找到了答案。

我的解决方案是基本上放弃尝试用反斜杠转义管道字符,并使用unicode字符转义序列。如果其他人试图使用@Value拉入一个管道分隔的String,那么下面的代码将进行测试,并与Java 6、Tomcat 6和Spring 3一起工作。

// Reads blockPeopleString delimited with | and splits into List of Strings
@Value("#{'${blockPeopleString}'.split('\\u007c')}")
private List<String> blockPeopleList;
 类似资料:
  • 问题内容: 我正在用XML编写一些SpEL语句,但无法让解析器确定何时需要转义字符。 我尝试了以下操作: 但是,添加\似乎并不能避免使用单引号,并且我一直收到解析器异常。 有什么办法可以逃避这些价值观? 问题答案: 从文档中: “要将单引号本身放在字符串中,请使用两个单引号字符。”

  • 给定一个字符串,我想用一个斜杠替换所有双斜杠,然后用替换

  • 即。在货币管道上完成一些额外的格式化。为此,我想在自定义管道的组件代码中使用现有管道。

  • 问题内容: 我正在尝试下面的代码,但出现错误 错误 我想要结果 问题答案: 请改用,它不使用正则表达式,因为您根本不需要它们: 这将按预期打印。

  • 问题内容: 我是Swift的新手,当我遇到转义的闭包时,我正在阅读手册。我根本没有得到手册的描述。有人可以简单地向我解释一下Swift中的转义闭包是什么。 问题答案: 考虑此类: 将传入的闭包分配给类中的属性。 现在是另一个类: 如果我调用,则闭包将存储在的实例中。由于是在闭包中捕获的,因此的实例还将对其具有很强的引用性。 基本上,这是逃脱的闭包的例子! 您可能想知道,“什么?那么封闭从何处逃脱到

  • 问题内容: 我遇到了解析错误,并且我认为是由于引号引起的。我怎样才能将其视为一个整体字符串? 问题是我不能在每个引号之前手动添加。这是我需要比较的实际文本。 问题答案: 像这样使用反斜杠 在PHP中,反斜杠用于转义引号内的特殊字符。由于PHP不能区分字符串和字符,因此您也可以使用 单引号和双引号之间的区别在于,双引号允许对字符串进行插值,这意味着您可以在字符串中内联引用变量,并且它们的值将像在字符