【问题标题】:org.apache.el.parser.ParseException: Encountered " "[" "[ "org.apache.el.parser.ParseException: 遇到""[""["
【发布时间】:2011-12-26 16:38:13
【问题描述】:

我有一个实用的 el 方法,可以在带有索引的列表中获取对象

public static Object get(List list, Integer index) {
        return list.get(index);
    }

我在 xhtml 页面中调用此方法来获取列表中第一个元素的名称 如下:

<span>#{[utils:get(myBean.myList,1)].name}</span>

但上面的表达式给了我以下异常:

org.apache.el.parser.ParseException: Encountered " "[" "[ "" at line 1, column 3.
Was expecting one of:
    <INTEGER_LITERAL> ...
    <FLOATING_POINT_LITERAL> ...
    <STRING_LITERAL> ...
    "true" ...
    "false" ...
    "null" ...
    "(" ...
    "!" ...
    "not" ...
    "empty" ...
    "-" ...
    <IDENTIFIER> ...

任何想法为什么?

【问题讨论】:

  • 是的; "[" 不允许在那里;括号是,如果您试图确定 .name 的应用范围。

标签: jsf-2 el


【解决方案1】:

那是因为它的语法无效。 EL specification document 中描述了有效的 EL 语法。大括号符号[] 用于按索引获取列表或数组项并动态解析映射的键。在您的情况下,以下是有效的语法:

<span>#{utils:get(myBean.myList,1).name}</span>

但是,自定义函数是不必要的。只需使用以下语法:

<span>#{myBean.myList[1].name}</span>

【讨论】:

猜你喜欢
  • 2014-06-21
  • 2013-07-24
  • 2014-08-23
  • 2015-08-20
  • 2013-10-04
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多