我希望有一个非常快速的简单答案,我在这里读了一些引用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,但是我在文档中没有找到任何关于逃避管道的参考。
答案 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;