4

ループを使用した単純な JEXL の例はありますか。単純なオブジェクト配列リストを繰り返し処理して、さまざまな文字列値を出力しようとしていますか?

4

4 に答える 4

5

452' の入力を含む完全な例は次のとおりです。

public static void testSimpleList() {

        List<String> list = new ArrayList<String>();
        list.add("one");
        list.add("two");


        JexlContext jexlContext = new MapContext();
        jexlContext.set("list", list);;

        Map<String, Object> functions1 = new HashMap<String, Object>();
        functions1.put("system", System.out);


        JexlEngine jexl = new JexlEngine();
        jexl.setFunctions(functions1);
        Expression expression = jexl.createExpression("for(item : list) { system:println(item) }");


        expression.evaluate(jexlContext);


    }

出力:

one
two
于 2015-10-12T21:19:54.607 に答える
3

式の代わりにスクリプトを使用する必要があるようです。

これは、「「for」の解析エラー」というエラーで失敗します

e = new org.apache.commons.jexl3.JexlBuilder().create();
c = new org.apache.commons.jexl3.MapContext();
c.set("a", Arrays.asList(1,2,3));
e.createExpression("for(x : a) { b=x }").evaluate(c)

ただし、これは機能します

e.createScript("for(x : a) { b=x }").evaluate(c)
于 2017-01-01T15:24:47.293 に答える