Joe*_*Joe 5 foreach jstl java-ee java-ee-6
var是一个静态属性,用于公开当前元素(正文的本地元素)
如何通过scriptlet /表达式访问var属性?
初始化代码
<%
Employee e = new Employee();
e.setName("name");
e.setEmail("abc@gmail.com");
java.util.List<Employee> empList = new java.util.ArrayList();
empList.add(e);
request.setAttribute("empList", empList); %>
Run Code Online (Sandbox Code Playgroud)
forEach code 1 deferredExpression错误
<c:forEach var="emp" items="${employees}">
<c:out value="${emp.name}"/><br><%=emp.getName()%>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
也不
forEach code 2 deferredExpression错误
<c:forEach var="emp" items="${empList}" varStatus="status">
Emp email: <%= ((Employee)(pageContext.findAttribute("emp"))).getName() %>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我每次更改时都有java.lang.NoSuchFieldError:deferredExpression因为我有不同版本的JSTL库,现在我只留下一个jstl-1.2.jar 关于JSTL的更多信息.
JSTL文档文档清楚地说明了"迭代的当前项目的导出范围变量的名称.此范围变量具有嵌套的可见性." 嵌套意味着从开始标记到结束标记.
EL代码
<c:forEach begin="0" end="5" var="countvar">
Iteration number ${ countvar + 24 }
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
备用JSP脚本
<c:forEach begin="0" end="5" var="countvar">
Iteration number
<%= ((Integer) (pageContext.findAttribute("cv")).intValue()+24 %>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
另一个c:forEach带有集合的示例
<%
Employee e = new Employee();
e.setName("name");
e.setEmail("abc@gmail.com");
java.util.List<Employee> empList = new java.util.ArrayList();
empList.add(e);
request.setAttribute("empList", empList);
%>
<c:forEach var="emp" items="${empList}" varStatus="status">
Emp email: <%= ((Employee)(pageContext.findAttribute("emp"))).getName() %>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex -1
<c:forEach var="emp" items="${empList}" varStatus="status">
<c:out value="Emp email: ${emp.email}"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13982 次 |
| 最近记录: |