JSTL核心库
1 out和set(重点)
out
| <c:out value=”aaa”/> | 输出aaa字符串常量 | 
| <c:out value=”${aaa}”/> | 与${aaa}相同 | 
| <c:out value=”${aaa}” default=”xxx”/> | 当${aaa}不存在时,输出xxx字符串 | 
| <% request.setAttribute("a","<script>alert('hello');</script>"); %> <c:out value="${a }" default="xxx" escapeXml="false" /> | 当escapeXml为false,不会转换“<”、“>”。这可能会受到JavaScript攻击。 | 
set:set标签的var、value、scope是一组,而target、property、value是一组。
| <c:set var=”a” value=”hello”/> | 在pageContext中添加name为a,value为hello的数据。 | 
| <c:set var=”a” value=”hello” scope=”session”/> | 在session中添加name为a,value为hello的数据。 | 
| <jsp:useBean id="user" class="com.rl.domain.User"/> <c:set target="${user }" property="username" value="renliang"/> <c:set target="${user }" property="password" value="123456"/> <c:out value="${user }" /> | 给user的username属性赋值renliang,给user的password属性赋值123456。 | 
2 if和choose(重点)
if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行。
| <c:set var="a" value="hello"/> <c:if test="${not empty a }"> <c:out value="${a }"/> </c:if> | 
choose标签对应Java中的if/else if/else结构
when标签的test为true时,会执行这个when的内容。
当所有when标签的test都为false时,才会执行otherwise标签的内容。
| <c:set var="score" value="${param.score }"/> <c:choose> <c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when> <c:when test="${score >= 90 }">A级</c:when> <c:when test="${score >= 80 }">B级</c:when> <c:when test="${score >= 70 }">C级</c:when> <c:when test="${score >= 60 }">D级</c:when> <c:otherwise>E级</c:otherwise> </c:choose> | 
3 forEach(重点)
forEach当前就是循环标签了,下面例子中设置域变量i,初始值为1,结束值为100。即i的值从1遍历到100,包含100。
| <c:set var="sum" value="0" /> <c:forEach var="i" begin="1" end="10"> <c:set var="sum" value="${sum + i}" /> </c:forEach> <c:out value="sum = ${sum }"/> | 
| <c:set var="sum" value="0" /> <c:forEach var="i" begin="1" end="10" step="2"> <c:set var="sum" value="${sum + i}" /> </c:forEach> <c:out value="sum = ${sum }"/> | 
还可以使用forEach来遍历数据或集合,遍历数组:
| <% String[] names = {"zhangSan", "liSi", "wangWu", "zhaoLiu"}; pageContext.setAttribute("ns", names); %> <c:forEach var="item" items="${ns }"> <c:out value="name: ${item }"/><br/> </c:forEach> | 
遍历List
| <% List<String> names = new ArrayList<String>(); names.add("zhangSan"); names.add("liSi"); names.add("wangWu"); names.add("zhaoLiu"); pageContext.setAttribute("ns", names); %> <c:forEach var="item" items="${ns }"> <c:out value="name: ${item }"/><br/> </c:forEach> | 
遍历Map
| <% Map<String,String> stu = new LinkedHashMap<String,String>(); stu.put("number", "N_1001"); stu.put("name", "zhangSan"); stu.put("age", "23"); stu.put("sex", "male"); pageContext.setAttribute("stu", stu); %> <c:forEach var="item" items="${stu }"> <c:out value="${item.key }: ${item.value }"/><br/> </c:forEach> | 
forEach标签还有一个属性:varStatus,这个属性用来指定接收“循环状态”的变量名,例如:<forEach varStatus=”vs” …/>,这时就可以使用vs这个变量来获取循环的状态了。
  current当前这次迭代的(集合中的)项
  index当前这次迭代从 0 开始的迭代索引
  count当前这次迭代从 1 开始的迭代计数
  first用来表明当前这轮迭代是否为第一次迭代的标志
  last用来表明当前这轮迭代是否为最后一次迭代的标志
| <c:forEach var="item" items="${ns }" varStatus="vs"> <c:if test="${vs.first }">第一行:</c:if> <c:if test="${vs.last }">最后一行:</c:if> <c:out value="第${vs.count }行: "/> <c:out value="[${vs.index }]: "/> <c:out value="name: ${vs.current }"/><br/> </c:forEach> | 
代码链接: http://pan.baidu.com/s/1hsiSr4o 密码: u86c
JSTL核心库的更多相关文章
- jstl   core 库 之 out  set  remove
		jstl 核心库 out标签 out:输出的标签 * value :输出的值 * default :默认值 * escapeXml :是否转移 默认为true(转义) 代码: <!-- 输出常量 ... 
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
		我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ... 
- Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库
		一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ... 
- 【JavaWeb】JSTL标签库
		JSTL标签库 JSTL标准标签库: JSTL用于简化JSP开发,提高代码的可读性与可维护性: JSTL由SUN(Oracle)定义规范,由Apache Tomcat团队实现: 引用JSTL核心库 核 ... 
- 【JSTL】JSTL标签库的常用标签
		一.JSTL技术 1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能.jstl出现的目的同el一样 ... 
- JSTL标签库之核心标签
		一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ... 
- JSTL 核心标签库 使用
		JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ... 
- JSTL 核心标签库 使用(C标签)
		JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ... 
- Java Servlet(十):JSTL核心标签库
		JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ... 
随机推荐
- 用IDM下载博客图片
			前言 写博客的人一定都会有一个图床,将图片存在那里.发现自己以前没有注意图片来源问题,随手就贴在博客上面了.现在有不少图片都挂了,换句话来说有可能自己目前用的图床不提供服务了,那所有的图片都有可能丢失 ... 
- django基础知识之Response对象
			HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调 ... 
- C++_异常9-异常的注意事项
			一.先讨论异常被引发后,可能导致的问题 意外异常: 如果它是在带异常规范的函数中引发的,则必须与规范列表中的某种异常匹配,否则为意外异常.在默认情况下,这将导致程序异常终止(虽然C++11摒弃了异常规 ... 
- POJ_2480 Longge's problem【积性函数+欧拉函数的理解与应用】
			题目: Longge is good at mathematics and he likes to think about hard mathematical problems which will ... 
- java - list 报java.lang.UnsupportedOperationException
			情景 现在有个数组,比如:String[] array = new String[]{"1","2","3"}; 我们想要往这个数组中添加 ... 
- linux安装PHP7以及扩展
			Linux下安装PHP7 事先升级gcc4.8,然后安装PHP7,安装步骤参考:CentOS安装PHP7 1.Linux下编译的php没有php.ini 解决办法:从源代码目录中复制php.ini-d ... 
- jar 启动关闭
			1.后台启动 startTest.sh #设置工程路径project_path=/root/testcd $project_path#nohup后台启动,输出日志到test.lognohup java ... 
- (转)一条SQL更新语句是如何执行的
			名词 MySQL 里经常说到的 WAL 技术,Write-Ahead Logging 第一个日志模块 redo log 也叫日志重写,是InnoDB 引擎特有的日志 - write pos and c ... 
- Oracle 查看表结构视图
			-- 创建视图 CREATE VIEW VIEW_TABLEASSELECT A.TABLE_NAME, A.column_name 字段名,A.data_type 数据类型,A.data_lengt ... 
- 2.5 References & Borrowing
			Here is how you would define and use a calculate_length function that has a reference to an object a ... 
