EL 2.1和2.2之间的差异

时间:2011-08-26 09:28:29

标签: java el

我正在寻找EL 2.1和2.2之间的差异列表。

我知道EL 2.1和2.2之间的一个区别是能够在2.2中传递方法参数。还有其他差异吗?

是否有可用于差异的功能比较图表?我已经搜索了几天,到目前为止还没能找到它。

谢谢

1 个答案:

答案 0 :(得分:6)

答案在EL 2.2. specification文件中。以下是相关摘录:

  

A.1维护1和维护版本2之间的更改

     

此版本的主要变化是添加了方法调用   EL中的参数,例如#{trader.buy("JAVA")}

     
      
  • javax.el.ELResolver中添加了一个方法:      
        
    • Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)。   

    •   
  •   
  • javax.el.BeanELResolver中添加了一个方法:      
        
    • Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)。   

    •   
  •   
  • javax.el.CompositeELResolver中添加了一个方法:      
        
    • Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)。   

    •   
  •   
  • 第1.1.1节。添加到第一段:

         

    同样,当方法名称时,.运算符也可用于调用方法   已知,但[]运算符可用于动态调用方法。   

  •   
  • 第1.2.1节。从

    更改最后一段的最后一部分      

    评估后,EL API会验证该方法是否符合预期   在解析时提供签名。因此没有强制执行。

         

         

    评估后,如果在解析时提供预期签名,则为EL API   验证该方法符合预期的签名,因此   没有强制执行。如果在解析时未提供预期签名,   然后在评估时,该方法用该信息识别   表达式中的参数和参数被强制转换为相应的   正式类型。   

  •   
  • 第1.6节。添加了带参数的方法调用语法。修改表达式的评估步骤以处理该方法   带参数的调用。   

  •   
  • 第1.19节。 ValueSuffix的生成包括可选参数。
  •   

未提及其他任何更改。所以,它确实只是方法调用功能。