JSTL标签cforEach控制ul换行
JSTL详解(常用标签以及c:forEach遍历集合)

JSTL详解(常⽤标签以及c:forEach遍历集合)JSTL标签参考⽂章:/qq_25827845/article/details/53311722# 学习总结⼀、 JSTL的简介1. 什么是JSTLJSTL 是 JSP 标准标签库,利⽤标签库的标签可以取代 JSP 页⾯上的 Java 代码,为页⾯设计⼈员和后台开发⼈员的分⼯协作提供了便利。
2. JSTL常⽤标签库标签库名URI字符串作⽤前缀核⼼标签库<%@ taglib prefix=“c” uri=“/jsp/jstl/core” %>⽤于页⾯逻辑控制如:if、forEachc格式化标签库<%@ taglib prefix=“fmt” uri=“/jsp/jstl/fmt” %>⽤于执⾏格式操作如:格式化⽇期字符串fmt3. JSTL使⽤步骤1)、导⼊ jstl-1.2.jar 包,每个标签底层其实都是⽤ Java 代码实现的,复制 jar 包到 web/WEB-INF/lib ⽬录结构下;2)、创建 JSP 页⾯,使⽤ taglib 的指令引⽤标签库<%@ taglib prefix="c" uri="/jsp/jstl/core" %>3)、接下来就可以使⽤标签库定义好的标签了,例如:<c:if>⼆、核⼼标签库常⽤标签1. c: set 标签标签名使⽤<c:out value=“xxx”/>输出 xxx<c:out value="${age}"/>输出EL表达式 ${age} 获取的内容<c:out value=”${age}” default=”xxx”/>输出EL表达式 ${age} 获取的内容,当EL表达式内容不存在时输出 default 的内容2. c: out 标签标签名使⽤<c:set var=“a” value=“xxx”/>在pageContext中添加name为a,value为xxx的数据<c:set var=”a” value=”xxx” scope=”session”/>在session中添加name为a,value为xxx的数据3. c: if 标签属性名是否⽀持EL属性类型属性描述test⽀持,必须是EL boolean EL 中条件为真则执⾏标签体内容注意:没有对应 else 标签代码案例:<c:set var="a" value="hello"/><c:if test="${not empty a }"><c:out value="${a }"/></c:if>4. c: choose 标签作⽤:⽤于多分⽀判断(多条件判断)标签名作⽤chaoose类似于 Java 中的 switch,choose只是⼀个容器,包含下⾯两个元素when可以出现多个⽤于每个判断条件,类似于 switch 中 case。
JSTL解释

<c:param name=”name” value=”value”/>
</c:url>
varReader=”varReaderName” [charEncoding=”charEncoding”]>
内容
</c:import>
名字 类型 描述
url String 待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源
context String 当使用相对路径访问外部context资源时,context指定了这个资源的名字。
JSTL常用标签语法及参数
一般用途的标签:
1.<c:out>
没有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>
有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”]>
迭代标签
1.<c:forEach>
语法1:在Collection中迭代
<c:forEach[var=”varName”] items=”collection” [varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]
jstl中foreach用法

jstl中foreach用法一、JSTL中forEach的基本用法1. 在JSP页面中使用JSTL的forEach标签就像拥有了一个魔法棒,它能轻松地遍历集合。
比如说,你有一个存放着学生名字的List,就像一个装满宝贝的盒子。
`<c:forEach var="studentName"items="${studentNameList}">`,这里的`var`就像是给每个从盒子里拿出来的宝贝取个临时名字,`items`就是那个装满宝贝(学生名字)的盒子(集合)。
2. 假设你是一个图书管理员,有一个书架(数组)放着各种各样的书。
在JSTL中,你可以这样用forEach遍历这个书架。
`<c:forEachvar="book" begin="0" end="${bookArray.length - 1}">`,这里的`begin`和`end`就像是你从书架的第几本开始看,到第几本结束看,是不是很方便呢?3. 如果你的集合是一个Map,那forEach标签也能搞定。
这就好比你有一个装满各种水果和它们数量的篮子(Map),`<c:forEachvar="entry" items="${fruitMap}">`,这里的`entry`就是这个篮子里的每一组水果和数量的组合。
4. 想象一下,你有一个装满彩色珠子(字符串元素)的罐子(List)。
在JSP中,你可以用`<c:forEach var="bead"items="${beadList}">${bead}</c:forEach>`轻松地把每个珠子(字符串)拿出来展示,就像把罐子里的珠子一个一个摆在桌子上。
5. 好比你有一组朋友的年龄存放在一个数组里,就像一串数字挂在绳子上。
jstl用法

JSTL用法一、什么是JSTLJavaServer Pages Standard Tag Library(JSTL)是一个JSP规范的标准标签库,它为JSP页面提供了一组标签和函数,用于简化JSP页面的开发和维护。
JSTL提供了核心标签库、格式化标签库、SQL标签库和XML标签库等,可以帮助开发者更方便地处理数据、格式化输出、执行SQL查询和处理XML数据等任务。
二、JSTL的引入要使用JSTL,首先需要在项目中引入JSTL的相关依赖。
在Maven项目中,可以通过在pom.xml文件中添加以下依赖来引入JSTL:<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>引入依赖后,就可以在JSP页面中使用JSTL的标签了。
三、核心标签库1. <c:out>标签<c:out>标签用于输出表达式的值,可以防止XSS攻击。
它的使用方式如下:<c:out value="${expression}" />其中,expression是一个JSP表达式,可以是一个变量、一个属性或者一个EL表达式。
<c:out>标签会将expression的值进行HTML转义,以防止恶意代码注入。
2. <c:set>标签<c:set>标签用于设置一个变量的值,可以在JSP页面中使用这个变量。
它的使用方式如下:<c:set var="variableName" value="expression" />其中,variableName是变量的名称,expression是一个JSP表达式,用于给变量赋值。
JSTL经典语法详解

JSTL语法及参数JSTL包含以下的标签:常用的标签:如<c:out>、<c:remove>、<c:catch>、<c:set>等条件标签:如<c:if><c:when>、<c:choose>、<c:otherwise>等URL标签:如<c:import>、<c:redirect>和<c:url>等XML标签:如<xml:out>等国际化输出标签:如<fmt:timeZone>等SQL标签:如<sql:query>、<sql:update>、<sql:transaction>等一般用途的标签:1.<c:out>没有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”]>这里是Body部分</c:out>名字类型描述value Object 将要输出的表达式escapeXml boolean 确定以下字符:<,>,&,’,”在字符串中是否被除数,默认为truedefault Object 如果vaule计算后的结果是null,那么输出这个默认值2.<c:set>这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。
他类似于<%request.setAttrbute(“name”,”value”);%> 语法1:使用value属性设定一个特定范围中的属性。
JSTL 核心标签库 使用

JSTL 核心标签库使用JSTL 核心标签库标签共有13个,功能上分为4类:1.表达式控制标签:out、set、remove、catch2.流程控制标签:if、choose、when、otherwise3.循环标签:forEach、forTokens4.URL操作标签:import、url、redirect使用标签时,一定要在jsp文件头加入以下代码:下面分别对这些标签进行说明:1. <c:out> 用来显示数据对象(字符串、表达式)的内容或结果使用Java脚本的方式为:<% out.println("hello") %> <% =表达式 %>使用JSTL标签:<c:out value="字符串">,例如:<body><c:out value="<要显示的数据对象(未使用转义字符)>" escapeXml="true" default="默认值"></c:out><br/><c:out value="<要显示的数据对象(使用转义字符)>" escapeXml="false" default="默认值"></c:out><br/><c:out value="${null}" escapeXml="false">使用的表达式结果为null,则输出该默认值</c:out><br/></body>那么网页显示效果为:2. <c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中。
jslt c标签库手册

前言从JSP 1.1规范开始,JSP 就支持在JSP 中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL (JavaServer Pages Standard Tag Library )的诞生。
作者:丁令(http:////)JSTL 简介JSTL 是一个不断完善的开放源代码的JSP 标签库,是由apache 的jakarta 小组来维护的。
JSTL 只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x 。
但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL 目前的最新版本为1.02,最终发布版为1.0。
JSTL 包含两个部分:标签库和EL (Expression Language 表达式语言)语言。
标签库目前支持四种标签:标签URI前缀示例Core/jstl/core c <c:tagname ...>XML processing/jstl/xml x<x:tagname ...>I18N capable formatting /jstl/fmt fmt <fmt:tagname ...>Database access (SQL)/jstl/sqlsql<sql:tagname ...>Core 支持JSP 中的一些基本的操作;XML processing 支持XML 文档的处理;I18N capable formatting 支持对JSP 页面的国际化;JSTL 标签库详细介绍资料收藏首页资讯空间学生论坛博客下载读书网摘程序员外包书店网址CT O俱乐部乐知教育D9区阿铮的箩筐箩筐里面水汪汪登录注册博客首页全站搜索留言用户操作[留言] [发消息] [加为好友]阿铮ID :azheng270共43505次访问,排名3671,好友7人,关注者26人。
哪里有自由,哪里就是我的国家阿铮的文章原创 36 篇翻译 1 篇转载 32 篇评论 32 篇订阅我的博客Database access (SQL)支持JSP对数据库的操作。
jstl标签forEach的用法--遍历java的集合

jstl标签forEach的⽤法--遍历java的集合再讲<c:forEach>之前,现讲⼀下让EL表达式⽣效的语句<% @ page isELIgnored="false"%>这句语句在你想让EL表达式⽣效的情况下,必须要加载jsp中。
<c:forEach>中各个常⽤属性的解释如下:items:要遍历的集合,通常⽤EL表达式表⽰:pageContext.setAttribute("mylist",list); ${mylist}var:变量varStatus:变量的状态 varStatus的属性有index,和count.其中index从0开始数起,count:个数。
下⾯的代码讲了java中常⽤的集合:1 <%@ page import="java.util.ArrayList" %>2 <%@ page import="com.supwisdom.domain.Student" %>3 <%@ page import="java.util.HashMap" %>4 <%@ page language="java" contentType="text/html; charset=UTF-8"5 pageEncoding="UTF-8"%>6 <%--el表达式⽣效的语句--%>7 <%@page isELIgnored="false" %>8 <%@ taglib uri="/jsp/jstl/core" prefix="c" %>9 <%--防⽌调⽤函数时报错--%>10 <%@ taglib prefix="fn" uri="/jsp/jstl/functions"%>11 <html>12 <body>13 <h2>Hello World!</h2>14 <%--forEach的⽤法--%>15 <%--⽤forEach遍历list集合--%>16 <%17 ArrayList<String> strings = new ArrayList<String>();18 strings.add("王昭君");19 strings.add("西施");20 strings.add("霍去病");21 strings.add("杨开慧");22 pageContext.setAttribute("ouyangfeng",strings);23 %>24 <c:forEach var="item" items="${ouyangfeng}" varStatus="status">25 <c:out value="${item}"></c:out>26 status.index: <c:out value="${status.index}"></c:out>27 status.count:<c:out value="${status.count}"></c:out><br>28 </c:forEach>29 <%--遍历list对象的集合--%>30 <%31 Student student = new Student();32 student.setId(1);33 student.setName("zyh");34 student.setAge(16);35 Student student2 = new Student();36 student2.setId(2);37 student2.setName("ouyangfeng");38 student2.setAge(29);39 ArrayList<Student> students = new ArrayList<Student>();40 students.add(student);41 students.add(student2);42 pageContext.setAttribute("plump",students);43 %>4445 <c:forEach var="item" items="${plump}">46学⽣的姓名: <c:out value="${}"></c:out>47学⽣的年龄: <c:out value="${item.age}"></c:out>48学⽣的⾝份证号:<c:out value="${item.id}"></c:out>49 <br>50 </c:forEach>51 <%--遍历list数组集合--%>52 <%53 ArrayList<String[]> sixi = new ArrayList<String[]>();54 String[] str= new String[]{"country","china"};55 String[] str2=new String[]{"address","NewYork"};56 String[] str3= new String[]{"student","pupil"};57 sixi.add(str);58 sixi.add(str2);59 sixi.add(str3);60 pageContext.setAttribute("array",sixi);61 %>62 <c:forEach var="item" items="${array}">63 <c:out value="${item[0]}"></c:out> <%--数组中的第⼀个元素--%>64 <c:out value="${item[1]}"></c:out> <%--数组中的第⼆个元素--%>65 <br>66 </c:forEach>67 <%--遍历map集合--%>68 <%69 HashMap<String, String> map = new HashMap<String, String>();70 map.put("China","Reservation");71 map.put("France","Romantic");72 map.put("America","Innovation");73 pageContext.setAttribute("hashmap",map);74 %>75 <c:forEach var="item" items="${hashmap}">76键是:<c:out value="${item.key}"></c:out>77值是:<c:out value="${item.value}"></c:out><br>78 </c:forEach>79 </body>80 </html>tomcat运⾏的结果为:1 Hello World!23王昭君 status.index: 0 status.count:14西施 status.index: 1 status.count:25霍去病 status.index: 2 status.count:36杨开慧 status.index: 3 status.count:47学⽣的姓名: zyh 学⽣的年龄: 16 学⽣的⾝份证号:18学⽣的姓名: ouyangfeng 学⽣的年龄: 29 学⽣的⾝份证号:29 country china10 address NewYork11 student pupil12键是:France 值是:Romantic13键是:America 值是:Innovation14键是:China 值是:Reservation。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前言:
在使用JSTL标签开发的时候经常会遇到ul和li控制,三个一行,两个一行,然后进行换行的问题。
所以就有了此文。
注意:
[html]view plain copy
1.varStatus 的初始取值是从1开始。
跟普通的数组取值不同,要特别注意区分。
1.引入<%@ taglib uri="/jsp/jstl/core" prefix="c" %>
2.后台传给前台list数据
3.前台进行遍历:
[html]view plain copy
1.<c:forEach items="${proList}"var="product"varStatus="p">
2.<c:if test="${p.count eq 1 || (p.count-1) % 3 eq 0}">
3.<ul class="ydHdul">
4.</c:if>
5.<li>
6.<span class="l_01"><img src="${url}/${product.pFilePath}
"alt="${product.pName}"/></span>
7.<div class="warpDbgcon">
8.<div class="ydMoney">
9.<span class="ydMspan ydMspan02">
¥${product.pPrice}</span>
10.<span class="ydMspan redTxt">赠</span>
11.</div>
12.<div class="yhZpin oneDiv">
13.<p class="porTxt">${product.pName}</p>
14.<!-- <p class="yhZpin yhZpin2">LR月之谜奇迹霜1盒+
月之谜四联版</p> -->
15.</div>
16.<a href="javascript:void(0);"class="ljgmBtns"oncli
ck="addCar('${product.pId}')">立即购买</a>
17.</div>
18.</li>
19.<c:if test="${p.count % 3 eq 0 || p.count % 3 eq 3}">
20.</ul>
21.</c:if>
22.</c:forEach>。