public void visit(Node.ELExpression n) throws JasperException {
n.setBeginJavaLine(out.getJavaLine());
- if (!pageInfo.isELIgnored()) {
+ if (!pageInfo.isELIgnored() && (n.getEL() != null)) {
out.printil("out.write("
- + JspUtil.interpreterCall(this.isTagFile, "${"
+ + JspUtil.interpreterCall(this.isTagFile, n.getType() + "{"
+ new String(n.getText()) + "}", String.class,
n.getEL().getMapName(), false) + ");");
} else {
String isXml = null;
Vector includePrelude = new Vector();
Vector includeCoda = new Vector();
- String deferedSyntaxAllowedAsLiteral = null;
+ String deferredSyntaxAllowedAsLiteral = null;
String trimDirectiveWhitespaces = null;
while (list.hasNext()) {
else if ("include-coda".equals(tname))
includeCoda.addElement(element.getBody());
else if ("deferred-syntax-allowed-as-literal".equals(tname))
- deferedSyntaxAllowedAsLiteral = element.getBody();
+ deferredSyntaxAllowedAsLiteral = element.getBody();
else if ("trim-directive-whitespaces".equals(tname))
trimDirectiveWhitespaces = element.getBody();
}
pageEncoding,
includePrelude,
includeCoda,
- deferedSyntaxAllowedAsLiteral,
+ deferredSyntaxAllowedAsLiteral,
trimDirectiveWhitespaces);
JspPropertyGroup propertyGroup =
new JspPropertyGroup(path, extension, property);
// JSP.2.2 - '#{' not allowed in template text
if (n.getType() == '#') {
- if (pageInfo.isDeferredSyntaxAllowedAsLiteral())
+ if (!pageInfo.isDeferredSyntaxAllowedAsLiteral()) {
+ err.jspError(n, "jsp.error.el.template.deferred");
+ } else {
return;
- err.jspError(n, "jsp.error.el.template.deferred");
+ }
}
// build expression
// Attribute does not accept any expressions.
// Make sure its value does not contain any.
if (isExpression(n, attrs.getValue(i))) {
- err
- .jspError(
- n,
- "jsp.error.attribute.custom.non_rt_with_expr",
+ err .jspError(n, "jsp.error.attribute.custom.non_rt_with_expr",
tldAttrs[j].getName());
}
jspAttrs[i] = new Node.JspAttribute(tldAttrs[j],
private boolean isExpression(Node n, String value) {
if ((n.getRoot().isXmlSyntax() && value.startsWith("%="))
|| (!n.getRoot().isXmlSyntax() && value.startsWith("<%="))
- || (value.indexOf("${") != -1 && !pageInfo.isELIgnored()))
+ || (value.indexOf("${") != -1 && !pageInfo.isELIgnored())
+ || (value.indexOf("#{") != -1 && !pageInfo.isELIgnored()
+ && !pageInfo.isDeferredSyntaxAllowedAsLiteral()))
return true;
else
return false;