Getting equal symbol expected while using jstl <p>I am getting </p> <blockquote> <p>org.apache.jasper.JasperException: /WEB-INF/AllClientBatchDetails.jsp(54,103) equal symbol expected</p> </blockquote> <p>And here is the jsp</p> <pre><code>&lt;%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*%&gt; &lt;%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %&gt; &lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt; &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; &lt;%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %&gt; &lt;html:html xhtml="true"&gt; &lt;head&gt; &lt;title&gt;&lt;bean:message key="progressReporter.successpage.title"/&gt;&lt;/title&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;html:base/&gt; &lt;/head&gt; &lt;body&gt; &lt;c:choose&gt; &lt;c:when test="${empty batchProgressMetricsList}"&gt; &lt;font color=&lt;bean:message key="error.font.color" /&gt; size=&lt;bean:message key="error.font.size" /&gt;&gt; &lt;bean:message key="error.no.active.batch" /&gt; &lt;/font&gt; &lt;br/&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;h4&gt;&lt;bean:message key="table.header" /&gt;&lt;/h4&gt; &lt;table border=&lt;bean:message key="table.border.size" /&gt;&gt; &lt;tr&gt; &lt;th&gt;&lt;bean:message key="table.client.id.header" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.total.session.used" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.total.time.elapsed" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.imnts.completed" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.imnts.remaining" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.cores.allocated" /&gt;&lt;/th&gt; &lt;th&gt;&lt;bean:message key="table.time.remaining" /&gt;&lt;/th&gt; &lt;/tr&gt; &lt;c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}"&gt; &lt;tr&gt; &lt;td class="tdcenter"&gt;${aggregatedBatchProgressMetrics["clientId"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["sessionUsedTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["sessionUsedTime"] % 60000)/1000, '.')}secs &lt;/td&gt; &lt;td class="tdcenter"&gt;${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["totalElapsedTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["totalElapsedTime"] % 60000)/1000, '.')}secs&lt;/td&gt; &lt;td class="tdcenter"&gt;${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${aggregatedBatchProgressMetrics["numberOfCores"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["sessionRemainingTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["sessionRemainingTime"] % 60000)/1000, '.')}secs&lt;/td&gt; &lt;br/&gt; &lt;table&gt; &lt;tr&gt; &lt;th&gt;session Id&lt;/th&gt; &lt;th&gt;taskId&lt;/th&gt; &lt;th&gt;task start time&lt;/th&gt; &lt;th&gt;task end time&lt;/th&gt; &lt;/tr&gt; ${aggregatedBatchProgressMetrics["batchMetricsList"][0]} ${aggregatedBatchProgressMetrics["batchMetricsList"][1]} ${aggregatedBatchProgressMetrics["batchMetricsList"][2]} &lt;c:forEach var="batchProgressMetrics" items="${aggregatedBatchProgressMetrics["batchMetricsList"]}"&gt; &lt;tr&gt; &lt;td class="tdcenter"&gt;${batchProgressMetrics["taskStats"]["sessionId"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${batchProgressMetrics["taskStats"]["taskId"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${batchProgressMetrics["taskStats"]["taskStartTime"]}&lt;/td&gt; &lt;td class="tdcenter"&gt;${batchProgressMetrics["taskStats"]["taskEndTime"]}&lt;/td&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;/table&gt; &lt;br/&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;/table&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;html:link page="/ProgressReporterForm.jsp"&gt;Go Back&lt;/html:link&gt; &lt;/body&gt; &lt;/html:html&gt; </code></pre> <p>I have request attribute set to batchProgressMetricsList and its an array list of an object called. I have AggregatedBatchProgressMetrics. Inside <code>aggregatedBatchProgressMetrics</code> i have a method called <code>getBatchMetricsList</code> which return an arraylist of object called BatchProgressMetrics. If i run it without the nested <code>c:forEach</code> tag, it would just run fine, but if i include the nested one it just fails. Can somebody please help me?</p> <p>Thanks in advance. Almas</p>