if
在JSP中if 的格式:
<c:if test = "" var="" scope="">
test是必要的属性,var不是必要的属性,scope不是必要的属性。
但是要用var属性的时候,scope也要连着用。
test的作用是里面写判断的条件,结果反回test。
var里面可以写一个参数,和test一样,获取到和test一样的值。
scope则是var里的值,所接收的范围,范围是4大域(page,request,session,application)。
var和scope其实用java是这样实现的:
<%--
这里var里面是装test所取得的结果 scope是所取得结果存储的域范围
里面是这样实现的:
boolean b = empty pageScope.list;
pageContext.setAttribute("result",b);
--%>
if的一些小例子:
<%
LinkedList list = new LinkedList();
//list.add("dkf");
pageContext.setAttribute("list", list);
%>
<c:if test="${empty pageScope.list }">
你还没有购物
</c:if>
<c:if test="${!empty pageScope.list }">
你购入的物品如下
</c:if>
forEach
在JSP中forEach的格式是:
<c:forEach items="" var="" begin="" end="" step="" varStatus="">
items这里是须要遍历的项目。(必须填)
var这里是项目的变量。(必须填)
begin 和 end 是 从begin遍历到end。(不必填)
step是循环每次加的步数,不填的时候是i++,填2的时候是i = i + 2。(不必填)
小例子:
<%
String str[] = {"a","b","c","d"};
pageContext.setAttribute("str", str);
%>
<c:forEach items="${pageScope.str}" var="s">
${s }<br>
</c:forEach>
结果是a,b,c,d
<%
List lists = new LinkedList();
lists.add("fefjie");
lists.add("sdfs");
lists.add("qweqw");
pageContext.setAttribute("lists", lists);
%>
<c:forEach items="${lists }" var="s">
${s }<br>
</c:forEach>
结果是fefjie sdfs qweqw
<%
Map map = new HashMap();
map.put("a", "sdfe");
map.put("b", "qwqwq");
map.put("c", "zxczxc");
pageContext.setAttribute("map", map);
%>
<%--var指向的类型是Map的entry --%>
<c:forEach items="${map }" var="s">
${s.key }==${s.value }<br>
</c:forEach>
结果是a == sdfe b == qwqwq c == zxczxc
<%
String str1[] = {"a","b","c","d","e","f","g"};
pageContext.setAttribute("str1", str1);
%>
<c:forEach items="${str1 }" var="s" begin="1" end="5">
${s }<br>
</c:forEach>
结果是b c d e f
<%
String str1[] = {"a","b","c","d","e","f","g"};
pageContext.setAttribute("str1", str1);
%>
<pre name="code" class="html"><c:forEach items="${str1 }" var="s" step="2">
${s }<br>
</c:forEach>
结果是a c e g