JSTL简介:

JSTL是Java中的一个定制标签库集

实现了JSP页面中的代码复用,提高效率

可读性更强,方便前端查看与开发

环境搭建:

JSTL标签和Servlet及JSP页面有比较严格的版本对应关系

tomcat7.0+JSTL1.1.2

JSTL的i基本配置:

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

JSTL好帮手——EL表达式

Expression Language,经常与JSTL配合使用

普通写法:<%=session.getValue("name")%>

EL表达式:<c:out value="${sessionScop.name}"/>

.与[]通常是通用

除2种情况外:

包含特殊字符${user.first-name}  ${user["first-name"]}

通过变量动态取值:${user[param]} param(name|sex|...)

JSTL的四大分类以及JSTL函数

核心标签

格式化标签

SQL标签

XML标签

EL变量:

在JSP内置对象:Page,Request,Session,Application

EL自动类型转换:

获取文本框的输入

  1. String str_count = request.getParameter("count");
  2. int count = Integer.parseInt(str_count);

EL自动转换:${param.count+20}

EL隐式对象:

EL运算符:

表达式标签:

JSTL之out标签:

  1.    <c:out value="欢迎您"></c:out>
  2. <%String str = "user"; request.setAttribute("name", str);%>
  3. <c:out value="${empty name}"></c:out>
  4. <!-- 当变量不存在时,通过default输出值 -->
  5. <c:out value="${defalut }" default="error"></c:out><br>
  6. <!-- escapeXML设置成false,转义生效 -->
  7. <c:out value="&ltout标签&gt" escapeXml="false"></c:out>

JSTL之set标签:

存值到scope中

  1. <c:set value="today" var="day" scope="session"></c:set>
  2. <c:set var="age" scope="application">12</c:set>

存值到JavaBean中

  1. <c:set target="${person }" property="name" value="nyan"></c:set>
  2. <c:out value="${person.name }"></c:out>

JSTL之remove标签:只能remove某个变量,而不能remove一个对象

JSTL之catch标签:

  1. <c:catch var="error">
  2. <c:set target="${person }" property="id">1024</c:set>
  3. </c:catch>
  4. <c:out value="${error}"></c:out>

流程控制标签:

JSTL之if标签:

test属性用于存放判断的条件,一般使用EL表达式来编写

var指定名称用来存放判断的结果类型为true或false

scope用来存放var属性存放的范围

  1. <form action="index.jsp" method="post">
  2. <!-- 用户输入的数据存入到${param.score}变量中去 -->
  3. <input type="text" name="score" value="${param.score }"/>
  4. <input type="submit" value="submit"/>
  5. </form>
  6. <c:if test="${param.score>=90 }" var="result">
  7. <c:out value="优秀"></c:out>
  8. </c:if>
  9. <c:out value="${result }"></c:out>

JSTL之choose、when、otherwise

  1. <c:choose>
  2. <c:when test="${param.score>=90 && param.score<=100 }">
  3. <c:out value="优秀"></c:out>
  4. </c:when>
  5. <c:when test="${param.score>=80 && param.score<90 }">
  6. <c:out value="良好"></c:out>
  7. </c:when>
  8. <c:when test="${param.score>=70 && param.score<80 }">
  9. <c:out value="一般"></c:out>
  10. </c:when>
  11. <c:when test="${param.score>=60 && param.score<70 }">
  12. <c:out value="及格"></c:out>
  13. </c:when>
  14. <c:when test="${param.score<60 && param.score>0 }">
  15. <c:out value="不及格"></c:out>
  16. </c:when>
  17. <c:otherwise>
  18. <c:out value="您的输入不合法"></c:out>
  19. </c:otherwise>
  20.  
  21. </c:choose>

第二种用法:

只使用choose和when

JSTL之forEach标签:

根据循环条件遍历集合中的元素

var 设定变量名用于存储从集合取得的元素(必须无默认值)

items指定要遍历的集合(必须无默认值)

begin、end用于指定遍历的起始位置和终止位置‘

step指定循环的步长

varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素状态

1、全部遍历

  1. <c:forEach var="存储当前遍历元素的变量" items="待遍历集合">
  2. </c:forEach>
  1. <%
  2. List<String> fruits = new ArrayList<String>();
  3. fruits.add("apple");
  4. fruits.add("orange");
  5. fruits.add("pear");
  6. fruits.add("watermelon");
  7. fruits.add("banana");
  8. request.setAttribute("fruits", fruits);
  9. %>
  10. <c:forEach var="fruit" items="${fruits }">
  11. <c:out value="${fruit }"></c:out><br>
  12. </c:forEach>

2、部分遍历

  1. <c:forEach var="fruit" items="${fruits }" begin="2" end="4">
  2. <c:out value="${fruit }"></c:out><br>
  3. </c:forEach>
  1. <c:forEach var="fruit" items="${fruits }" varStatus="fru">
  2. <c:out value="${fruit }"></c:out><br>
  3. <c:out value="index属性值:${fru.index }"></c:out><br>
  4. <c:out value="first属性值:${fru.first }"></c:out><br>
  5. </c:forEach>

JSTL之forTokens:

用于浏览器字符串,并根据指定字符串截取

items指定被迭代的字符串

delims指定使用的分隔符

var指定用来存放遍历到的成员

  1. <c:forTokens items="010-8809687879-142" delims="-" var="num">
  2. <c:out value="${num }"></c:out>
  3. </c:forTokens>

URL操作标签:

JSTL之import标签:

URL被导入资源的URL路径

context相同服务器下其他的web工程,必须以“/”开头

var以String类型存入被包含文件的内容

Scope var变量的JSP范围

charEncoding被导入文件的编码格式

varReader以Reader类型存储被包含的文件内容

  1. <!-- 导入网络绝对路径 -->
  1. <c:catch var="error09">
      <c:import url="http://www.imooc.com">
      </c:import>
    </c:catch> <!-- 导入相对路径 -->
    <c:catch var="error08">
      <c:import url="files/1.txt" charEncoding="gbk">
      </c:import>
    </c:catch>

JSTL之redirect标签:

  1. <c:redirect url="firstDemo.jsp">
  2. <!-- 传递参数 -->
  3. <c:param name="username">lily</c:param>
  4. <c:param name="password">passw0rd</c:param>
  5. </c:redirect>

JSTL之URL标签

  1. <!-- 动态生成URL -->
  2. <c:if test="${1<3 }">
  3. <c:set var="partURL">aa</c:set>
  4. </c:if>
  5. <c:url value="http://localhost:8081/${partURL }" var="newURL" scope="session"></c:url>
  6. <a href="${newURL }">新的URL</a>

JSTL常用函数:

  1. <c:out value="${fn:contains('nyan','a')}"></c:out>
  2. fn:endsWith()
  3. fn:indexOf()
  4. fn:escapeXML()
  5. fn:containsIgnoreCase()

JSP--常用标签的更多相关文章

  1. JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

    1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...

  2. jsp学习--JSP运行原理,九大隐式对象和JSP常用标签

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  3. 咸鱼入门到放弃7--jsp<二>jsp常用标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  4. JSP常用标签

    JSP常用标签可以理解为JSTL user:普通用户 admin:站点管理员 JSTL1.1.2下载地址:http://archive.apache.org/dist/jakarta/taglibs/ ...

  5. jsp常用标签和标签库及javaBean规范

    1 常用标签forward,pararm,include <jsp:forward page=""></jsp:forward> <jsp:param ...

  6. [转]Jsp 常用标签

    <jsp:include> 动态引入,涉及到的多个 jsp 页面会翻译成多个 servlet 并在执行时合并. include 指令 是静态引入,涉及到的多个 jsp 页面会翻译成一个 s ...

  7. JSP常用标签——JSTL标签和EL表达式

    一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复 ...

  8. java web中jsp常用标签

    在jsp页面开发过程中,经常需要使用JSTL(Java Server Pages Standard Tag Library)标签开开发页面,是看起来更加的规整舒服. JSTL主要提供了5大类标签库: ...

  9. jsp 常用标签的使用

    jsp中定义实体bean<jsp:useBean id="clu" class="cn.domain.CacluBean"></jsp:use ...

  10. jsp的标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

随机推荐

  1. Python读取word文档(python-docx包)

    最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...

  2. 浏览器登录cookie

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  3. Jmeter 05 JMeter元件详解

    1. JMeter 逻辑控制器 Switch条件控制器.While条件控制器.交替控制器.仅一次控制器.随机控制器.随机顺序控制器.条件控制器(如果(if)).循环控制器.录制控制器.ForEach控 ...

  4. K.Bro Sorting(思维题)

    K.Bro Sorting Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)T ...

  5. EasyDSS直播服务器如何帮助用户解决OBS不能同时同步输出多路直播流到直播平台、CDN平台的限制

    最近有用户突然寻求帮助,大概的意思就是说: 他需要同步将桌面的直播同时RTMP发布到:斗鱼.熊猫TV等等多个平台,但是OBS又只能同时采集并发布推流直播到单一个平台,而且有时候在4G或者网络比较差的情 ...

  6. POJ 1113 Wall【凸包周长】

    题目: http://poj.org/problem?id=1113 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...

  7. JS分段传输数据

    <SCRIPT language=javascript> file://数据拆分,并放到相应的hidden域中,在Form的onSubmit事件中激发 function fnPreHand ...

  8. 003-unity3d 物理引擎简介以及示例

    一.概述 物理引擎就是模拟真实世界中物体碰撞.跌落等反应的引擎,通过ballence.愤怒的小鸟等理解.Unity3D的物理引擎使用的是Nvidia的PhysX. 物理引擎是一个计算机程序模拟牛顿力学 ...

  9. js格式化货币金额

    /* 格式化金额, s : 金额 n : 保留位数 */ function formatMoney(s, n) { n = n > 0 && n <= 20 ? n : 2 ...

  10. C#泛型命名潜规则

    public class List<T>{} public class LinkedList<T>{} public class SortedList<TKey,TVal ...