title: JSTL for each, var contains square brackets
body: <p>I have a <code>HashSet</code> of Strings, which is made with the following code:</p>
  
  <pre class="lang-java prettyprint-override"><code>Set&lt;String&gt; scripts = new HashSet&lt;&gt;();
  String contextPath = request.getContextPath();
  scripts.add(contextPath + "/resources/scripts/jquery.cycle2.js");
  scripts.add(contextPath + "/resources/scripts/jquery.cycle2.center.js");
  scripts.add(contextPath + "/resources/scripts/slideshow.js");
  request.setAttribute("scripts", scripts);
  </code></pre>
  
  <p>Now in a JSP page, with JSTL, I do a normal forEach loop:</p>
  
  <pre class="lang-java prettyprint-override"><code>&lt;c:if test="${not empty scripts}"&gt;
      &lt;c:forEach var="script" items="${scripts}" &gt;
          &lt;script type="text/javascript"
                  src="${script}"&gt;
                            &lt;/script&gt; 
      &lt;/c:forEach&gt;
  &lt;/c:if&gt;
  </code></pre>
  
  <p>When loading the page, this results in:</p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;script type="text/javascript"
          src="[/InfoKiosk/resources/scripts/jquery.cycle2.center.js"&gt;
                            &lt;/script&gt; 
  
  &lt;script type="text/javascript"
          src=" /InfoKiosk/resources/scripts/jquery.cycle2.js"&gt;
                            &lt;/script&gt; 
  
  &lt;script type="text/javascript"
          src=" /InfoKiosk/resources/scripts/slideshow.js]"&gt;
                            &lt;/script&gt; 
  </code></pre>
  
  <p>Notice the <strong>square brackets</strong> (<code>[</code> and <code>]</code>) that appear before the first script source and after the last. Where do they come from?</p>