JSTL中的if和forEach標籤
阿新 • • 發佈:2019-02-02
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。(不必填)
小例子:
結果是a,b,c,d<% String str[] = {"a","b","c","d"}; pageContext.setAttribute("str", str); %> <c:forEach items="${pageScope.str}" var="s"> ${s }<br> </c:forEach>
<%
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