EL
1. 获取域中的数据:
${pageScope|requestScope|sessionScope|applicationScope.属性名}
或
${属性名}: 依次从 pageContext,requset,session,application查找指定属性,若查找到返回值,结束该次查找若查找不到,返回""
若属性名中出现了"."|"+"|"-" 等特殊符号,需要使用 scope 获取
例:
request.setAttribute("arr.age", 20);
${requestScope["arr.age"] }
获取复杂数据:
获取数组中的数据
${属性名[index]}
例:
request.setAttribute("arr", new String[] {"aa","bb","cc"});
${arr[0] }
获取 list 中的数据
${属性名[index]}
例:
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
request.setAttribute("list", list);
${list[0] }
获取 map 中的数据
${属性名.键名(key)}
例:
Map map=new HashMap();
map.put("name", "zhc");
map.put("age", 18);
request.setAttribute("map", map);
${map.name }
获取当前 web 应用的根目录:
${pageContext.request.contextPath}
1. EL 都是利用反射调用完成的,直接写需要调用的属性名称 EL 自动调用相应的 getter() 方法
2. 在整个 JSTL 里面只有两个重要标签:
1. 判断标签,判断指定的条件是否满足,如果满足了,则执行;
<c:if test="判断条件,利用EL 完成" var="保存判断结果的属性名称" scope="设置的保存范围"></c:if>
<c:if test="${param.zhc=='zhc' }" var="resa">
<h1>判断条件成立,输出欢迎信息!</h1>
</c:if>
<c:if test="${param.zhc!='zhc' }" var="resb">
<h1>判断条件不成立!</h1>
</c:if>
<h2>判断结果resa:${resa }</h2>
<h2>判断结果resb:${resb }</h2>
http://localhost:8080/ELTest/test.jsp?zhc=zhc
判断条件成立,输出欢迎信息!
判断结果resa:true
判断结果resb:false
2. 迭代输出标签: <c:forEach>,可以输出 List 或 Map 集合
<c:forEach items="集合数据" var="每次取出的对象属性名称" begin="开始索引" end="结束索引" step="步长"></c:forEach>
3. 这两个标签中的 var的名称 可以自定义
<c:forEach items="${allPers }" var="a">
<tr>
<td>${a.id }</td>
<td>${a.name }</td>
<td>${a.gender }</td>
</tr>
</c:forEach>
<c:forEach items="${allPers }" var="per">
<tr>
<td>${per.id }</td>
<td>${per.name }</td>
<td>${per.gender }</td>
</tr>
</c:forEach>
这两个标签的输出结果是一样的,但是 var 自定义的最好有意义
2)与输入有关的隐含对象
与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
例如我们要取得用户的请求参数时,可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}
例:
<a href="${pageContext.request.contextPath }/product?method=findByPage&cid=${param.cid }&currPage=${pb.currPage-1}" </a>
String cid = req.getParameter("cid");
int currPage = Integer.parseInt(req.getParameter("currPage"))
1. 获取域中的数据:
${pageScope|requestScope|sessionScope|applicationScope.属性名}
或
${属性名}: 依次从 pageContext,requset,session,application查找指定属性,若查找到返回值,结束该次查找若查找不到,返回""
若属性名中出现了"."|"+"|"-" 等特殊符号,需要使用 scope 获取
例:
request.setAttribute("arr.age", 20);
${requestScope["arr.age"] }
获取复杂数据:
获取数组中的数据
${属性名[index]}
例:
request.setAttribute("arr", new String[] {"aa","bb","cc"});
${arr[0] }
获取 list 中的数据
${属性名[index]}
例:
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
request.setAttribute("list", list);
${list[0] }
获取 map 中的数据
${属性名.键名(key)}
例:
Map map=new HashMap();
map.put("name", "zhc");
map.put("age", 18);
request.setAttribute("map", map);
${map.name }
获取当前 web 应用的根目录:
${pageContext.request.contextPath}
1. EL 都是利用反射调用完成的,直接写需要调用的属性名称 EL 自动调用相应的 getter() 方法
2. 在整个 JSTL 里面只有两个重要标签:
1. 判断标签,判断指定的条件是否满足,如果满足了,则执行;
<c:if test="判断条件,利用EL 完成" var="保存判断结果的属性名称" scope="设置的保存范围"></c:if>
<c:if test="${param.zhc=='zhc' }" var="resa">
<h1>判断条件成立,输出欢迎信息!</h1>
</c:if>
<c:if test="${param.zhc!='zhc' }" var="resb">
<h1>判断条件不成立!</h1>
</c:if>
<h2>判断结果resa:${resa }</h2>
<h2>判断结果resb:${resb }</h2>
http://localhost:8080/ELTest/test.jsp?zhc=zhc
判断条件成立,输出欢迎信息!
判断结果resa:true
判断结果resb:false
2. 迭代输出标签: <c:forEach>,可以输出 List 或 Map 集合
<c:forEach items="集合数据" var="每次取出的对象属性名称" begin="开始索引" end="结束索引" step="步长"></c:forEach>
3. 这两个标签中的 var的名称 可以自定义
<c:forEach items="${allPers }" var="a">
<tr>
<td>${a.id }</td>
<td>${a.name }</td>
<td>${a.gender }</td>
</tr>
</c:forEach>
<c:forEach items="${allPers }" var="per">
<tr>
<td>${per.id }</td>
<td>${per.name }</td>
<td>${per.gender }</td>
</tr>
</c:forEach>
这两个标签的输出结果是一样的,但是 var 自定义的最好有意义
2)与输入有关的隐含对象
与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
例如我们要取得用户的请求参数时,可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}
例:
<a href="${pageContext.request.contextPath }/product?method=findByPage&cid=${param.cid }&currPage=${pb.currPage-1}" </a>
String cid = req.getParameter("cid");
int currPage = Integer.parseInt(req.getParameter("currPage"))