<c:forEach> and <h:commandLink> not able to work together?
===

Hi I have a jsp page like this

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Compact Output</title>
    </head>
    <body>
      <f:view>
        <h:form>
          <c:forEach items="${bean.itemlist}" var="item">
            <h:panelGrid columns="1" id="panel1">
    	  <h2><c:out value="${item.displayName}" /></h2>
              <img src="<c:out value="${item.thumbnailURI}"/>" height="600" width="800" />	  
              <h:commandLink action="#{bean.action1}" value="Details">
                <f:param name="selecteddisplayName"  value="#{item.displayName}" />
              </h:commandLink>
            </h:panelGrid>
          </c:forEach>
        </h:form>
    </f:view>
    </body>
    </html>

I put 

            <h:commandLink action="#{bean.action1}" value="Details">
                <f:param name="selecteddisplayName"  value="#{item.displayName}" />
              </h:commandLink>

inside the <c:forEach> tag, but when click the link, the #{bean.action1} got called, but the parameter item.displayName is not passed to the controller. I tried to change it to ${item.displayName} then I got compile error "value" does not support runtime expressions.

What is wrong with my jsp page?

In my controller I have defined private String selecteddisplayName and getter/setters.

Maybe <c:forEach> can not work together with <h:commandLink>?