参考下这个
对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。对于上述两种情况,都可允许表达式出现在方括号中。对嵌套表达式求值的结果将被作为下标或键,用来检索集合或数组的适当元素。和点运算符一样,方括号运算符也可以递归应用。这使得 EL 能够从多维数组、嵌套集合或两者的任意组合中检索元素。此外,点运算符和方括号运算符还可以互操作。例如,如果数组的元素本身是对象,则可以使用方括号运算符来检索该数组的元素,并结合点运算符来检索该元素的一个特性(例如 ${urls[3].protocol} )。 

解决方案 »

  1.   

    [size=18px]<c:forEach var="photo" items="${product.photos}" varStatus="status">      <c:if test="${status.index==0}"> //status.index==0表示此时photo引用的是第一个元素         ...你的处理
          </c:if></c:forEach>
    [/size]
      

  2.   

    对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。 
      

  3.   

    <c:forEach var="photo" items="${product.photos}" varStatus="status"> 
      ${status.first}
      

  4.   

    <c:forEach items="${product.photos}" var="photo">
    <c:if> 
             .......
    </c:if>             
    </c:forEach>