Spring 在SpEL中逃离一个|(管道)

Spring 在SpEL中逃离一个|(管道),spring,escaping,spring-annotations,spring-el,Spring,Escaping,Spring Annotations,Spring El,我希望能有一个非常简单的答案,我在这里读到了一些关于SpEL和转义序列的其他问题,但仍然没有成功 我想使用@Value和SpEL将属性拆分为字符串列表。该物业将为: 12345|12345|12345 所以我需要拆分管道字符,我可以在Java中使用.split\\\\成功地转义管道字符。我试过没有斜线,2斜线和4斜线,但都不成功。是否可以使用以下代码在管道上拆分?我的客户不管什么原因都想继续使用管道 @Value("#{'${list.of.blocked.people}'.split('\\

我希望能有一个非常简单的答案,我在这里读到了一些关于SpEL和转义序列的其他问题,但仍然没有成功

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

12345|12345|12345
所以我需要拆分管道字符,我可以在Java中使用.split\\\\成功地转义管道字符。我试过没有斜线,2斜线和4斜线,但都不成功。是否可以使用以下代码在管道上拆分?我的客户不管什么原因都想继续使用管道

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

这里有一个问题的链接,这个问题让我走了这么远,以供参考

我还试着查看了Spring文档,但在文档中找不到任何关于逃生管道的参考资料


在web开发论坛上找到了答案

我的解决方案是基本上放弃用反斜杠转义管道字符,而使用unicode字符转义序列。如果其他任何人试图使用@Value拉入一个管道分隔字符串,那么下面的代码将被测试并与Java6、Tomcat6和Spring3一起使用

// Reads blockPeopleString delimited with | and splits into List of Strings
@Value("#{'${blockPeopleString}'.split('\\u007c')}")
private List<String> blockPeopleList;

在web开发论坛上找到了答案

我的解决方案是基本上放弃用反斜杠转义管道字符,而使用unicode字符转义序列。如果其他任何人试图使用@Value拉入一个管道分隔字符串,那么下面的代码将被测试并与Java6、Tomcat6和Spring3一起使用

// Reads blockPeopleString delimited with | and splits into List of Strings
@Value("#{'${blockPeopleString}'.split('\\u007c')}")
private List<String> blockPeopleList;

在我意识到斯佩尔把它当作手术室之前,我一直在打我的头。非常感谢。我也注意到简单的“\\\\\\”是有效的。当我终于意识到斯佩尔把它当作手术室时,它一直在打我的头。非常感谢。也注意到简单的“\\\\”工作。