title: Nesting EL functions
body: <p>I am getting EL parsing exceptions when doing this in my JSP:</p>
  
  <pre><code>&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt;
  &lt;%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%&gt;
  &lt;%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %&gt;
  &lt;%@page import="my.InternalConstants"%&gt;
  
  [...]
  
  &lt;c:set var="MYPREFIX"&gt;&lt;%=InternalConstants.MYPREFIX%&gt;&lt;/c:set&gt;
  
  [...]
  
  &lt;c:forEach var="name" items="${data.names}" varStatus="status"&gt;
      &lt;c:set var="reducedName" value="${fn:substring(name, fn:length(MYPREFIX), fn:length(name))}"/&gt; &lt;-- here is where the exception occurs
  </code></pre>
  
  <p>What am I doing wrong?</p>
  
  <p>Thanks.</p>
  
  <p>Update:</p>
  
  <p>This is the exception:</p>
  
  <pre><code>view.jsp(86,94) --&gt; JSPG0122E: Unable to parse EL function ${fn:substring(name, fn:length(MYPREFIX), fn:length(name)}).
  
  at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction(ELValidator.java:500)
  at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:122)
  at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:149)
  at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttribute(ValidateVisitor.java:1752)
  at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttributeValues(ValidateVisitor.java:1400)
  at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.visitCustomTagStart(ValidateVisitor.java:294)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:234)
  at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:216)
  at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)
  </code></pre>