Fails at runtime with: Failed to parse the expression [${}] Encountered " "}" "} "" at line 1, column 3. Was expecting one of: "{" ... <INTEGER_LITERAL> ... <FLOATING_POINT_LITERAL> ... <STRING_LITERAL> ... "true" ... "false" ... "null" ... "(" ... "[" ... "!" ... "not" ... "empty" ... "-" ... ... ... "(" ...
That is consistent with the current behaviour without pre-compilation. The error is triggered at runtime so I wouldn't expect it to be triggered by pre-compilation. The question is should ${} trigger a translation error or not. That needs some spec research.
<quote> JSP.2.7 JSP containers are required to produce a translation error when a syntactically invalid EL expression is encountered in an attribute value or within template text. </quote> And, since ${} is not valid there should be a translation error (i.e. a compile time error). The fix looks fairly simple.
Fixed in: - trunk for 9.0.2 onwards - 8.5.x for 8.5.24 onwards - 8.0.x for 8.0.48 onwards - 7.0.x for 7.0.83 onwards