Простой вопрос о выборе коллекции SPEL.
См. Раздел 10.5.17 Выбор коллекции на этой странице https://docs.spring.io/spring/docs/4.3.10.RELEASE/spring-framework-reference/html/expressions.html
List<Inventor> list = (List<Inventor>) parser.parseExpression(
"Members.?[Nationality == 'Serbian']").getValue(societyContext);
Мне нужно выбор «сербский» должен исходить извне, а не быть фиксированной жестко закодированной строкой.
Просто в качестве аргумента учтите, что мы могли бы получить его как « selectedNationality » из того же класса общества с той же страницы по ссылке.
Модифицированный класс с selectedNationality
public class Society {
private String name;
public static String Advisors = "advisors";
public static String President = "president";
private List<Inventor> members = new ArrayList<Inventor>();
private Map officers = new HashMap();
// new selector field
private String selectedNationality;
......
}
New Selection
Новый выбор SPEL будет выглядеть следующим образом:
List<Inventor> list = (List<Inventor>) parser.parseExpression(
"Members.?[Nationality == selectedNationality]").getValue(societyContext);
Когда мы пытаемся сделать ошибку, то "selectedNationality" не является частью объекта Member.
Означает ли это, что для выбора коллекции в языке выражений Spring нам понадобится жестко закодированная строка? Если да, то кто-нибудь знает, почему?