Class ELInterpreterTagSetters

  • All Implemented Interfaces:
    ELInterpreter

    public class ELInterpreterTagSetters
    extends Object
    implements ELInterpreter
    A non-specification compliant ELInterpreter that optimizes a subset of setters for tag attributes.

    The cases optimized by this implementation are:

    • expressions that are solely a literal boolean
    • expressions that are solely a constant string used (with coercion where necessary) with a setter that accepts:
      • boolean / Boolean
      • char / Character
      • BigDecimal
      • long / Long
      • int / Integer
      • short / Short
      • byte / Byte
      • double / Double
      • float / Float
      • BigInteger
      • Enum
      • String
    The specification compliance issue is that it essentially skips the first three ELResolvers listed in section JSP.2.9 and effectively hard codes the use of the 4th ELResolver in that list.
    See Also:
    "https://bz.apache.org/bugzilla/show_bug.cgi?id=64872"