逃避| (管道)在SpEL

时间:2013-08-13 20:55:36

标签: spring escaping spring-annotations spring-el

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

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

12345|12345|12345

所以我需要拆分管道字符,我可以使用.split(\\|)成功地转义管道字符,在Java中执行此操作。我试过没有斜线,2斜线和4斜线都没有成功。是否可以使用以下代码拆分管道?我的客户想要出于任何原因继续使用管道......

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

感谢。

以下是我这个问题的链接,供参考。

Reading a list from properties file and load with Spring annotation value

我也尝试过查看Spring Docs,但是我在文档中没有找到任何关于逃避管道的参考。

Spring Documentation on SpEL

1 个答案:

答案 0 :(得分:4)

在网站开发论坛here上找到答案。

我的解决方案是基本上放弃尝试使用反斜杠转义管道字符并使用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;