title: JSTL xmlns namespace differences between JSF 1.2 and JSF 2.x?
body: <p>I have a JSF 1.2 based webapp from which I copied the JSTL import</p>
  
  <pre><code>xmlns:c="http://java.sun.com/jstl/core"
  </code></pre>
  
  <p>You can also find this import in many places on the Internet. I can't remember whether the above worked in my former web project or not, in any case, it does <em>not</em> work in my current JSF 2.0 based webapp. I got a warning from the container saying:</p>
  
  <blockquote>
    <p>Warning: This page calls for XML namespace <a href="http://java.sun.com/jstl/core">http://java.sun.com/jstl/core</a> declared with prefix c but no taglibrary exists for that namespace. </p>
  </blockquote>
  
  <p>I then changed the import to</p>
  
  <pre><code>xmlns:c="http://java.sun.com/jsp/jstl/core"
  </code></pre>
  
  <p>... which removed all headaches using <code>&lt;c:forEach&gt;</code> in a JSF/RichFaces-based webapp.</p>
  
  <p>What's the trick here? Have there been any changes to the JSTL import URL from JSF 1.2 to 2.x? Or is the former line generally wrong (in JSF)? What's the difference between the two?</p>