2

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

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

12345|12345|12345

所以我需要拆分管道字符,我可以在 Java 中通过使用.split(\\|)成功转义管道字符来做到这一点。我试过没有斜线,2个斜线和4个斜线,都没有成功。是否可以使用以下代码在管道上拆分?无论出于何种原因,我的客户都想继续使用管道......

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

谢谢。

这是一个让我走到这一步的问题的链接,以供参考。

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

我也尝试查看 Spring Docs,但在他们的文档中找不到任何关于转义管道的参考。

SpEL 上的 Spring 文档

4

1 回答 1

4

在此处的网络开发论坛上找到了答案。

我的解决方案是基本上放弃尝试用反斜杠转义管道字符并使用 unicode 字符转义序列。如果其他人尝试使用 @Value 拉入管道分隔的字符串,则以下代码经过测试,可与 Java 6、Tomcat 6 和 Spring 3 一起使用。

// Reads blockPeopleString delimited with | and splits into List of Strings
@Value("#{'${blockPeopleString}'.split('\\u007c')}")
private List<String> blockPeopleList;
于 2013-08-13T21:13:33.767 回答