Search code examples
javaspringspring-el

Spring Expression Language check if a string is contained in a List of Strings


I have the following SPEL test code:

public void test(){
    ExpressionParser parser = new SpelExpressionParser();

    String input = "ADITYA";
    List<String> coreTeam = Arrays.asList("ASHISH","ADITYA","SUMANT","SHASHIKANT","HATIM");

    System.out.println(coreTeam.toString());

    StandardEvaluationContext coreTeamContext = new StandardEvaluationContext(coreTeam);
    coreTeamContext.setVariable("CORE_TEAM",coreTeam);
    coreTeamContext.setVariable("CHEK_TEAM",input);

    Expression exp40 = parser.parseExpression("#CORE_TEAM.contains(#CHECK_TEAM)");
    Boolean s = exp40.getValue(coreTeamContext,Boolean.class);

}

The output of which is always false.

What am I missing?


Solution

  • It's typo error, you typed CHECK_TEAM iso "CHEK_TEAM". The below code will give you true. ExpressionParser parser = new SpelExpressionParser();

     String input = "ADITYA";
        List<String> coreTeam = Arrays.asList("ASHISH","ADITYA","SUMANT","SHASHIKANT","HATIM");
    
        System.out.println(coreTeam.toString());
    
        StandardEvaluationContext coreTeamContext = new StandardEvaluationContext(coreTeam);
        coreTeamContext.setVariable("CORE_TEAM",coreTeam);
        coreTeamContext.setVariable("CHEK_TEAM",input);
    
        Expression exp40 = parser.parseExpression("#CORE_TEAM.contains(#CHEK_TEAM)");
        Boolean s = exp40.getValue(coreTeamContext,Boolean.class);