JSP--常用标签
JSTL简介:
JSTL是Java中的一个定制标签库集
实现了JSP页面中的代码复用,提高效率
可读性更强,方便前端查看与开发
环境搭建:
JSTL标签和Servlet及JSP页面有比较严格的版本对应关系
tomcat7.0+JSTL1.1.2
JSTL的i基本配置:
<%@ 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自动类型转换:
获取文本框的输入
String str_count = request.getParameter("count");
int count = Integer.parseInt(str_count);
EL自动转换:${param.count+20}
EL隐式对象:

EL运算符:

表达式标签:
JSTL之out标签:
<c:out value="欢迎您"></c:out>
<%String str = "user"; request.setAttribute("name", str);%>
<c:out value="${empty name}"></c:out>
<!-- 当变量不存在时,通过default输出值 -->
<c:out value="${defalut }" default="error"></c:out><br>
<!-- escapeXML设置成false,转义生效 -->
<c:out value="<out标签>" escapeXml="false"></c:out>
JSTL之set标签:
存值到scope中
<c:set value="today" var="day" scope="session"></c:set>
<c:set var="age" scope="application">12</c:set>
存值到JavaBean中
<c:set target="${person }" property="name" value="nyan"></c:set>
<c:out value="${person.name }"></c:out>
JSTL之remove标签:只能remove某个变量,而不能remove一个对象
JSTL之catch标签:
<c:catch var="error">
<c:set target="${person }" property="id">1024</c:set>
</c:catch>
<c:out value="${error}"></c:out>
流程控制标签:
JSTL之if标签:
test属性用于存放判断的条件,一般使用EL表达式来编写
var指定名称用来存放判断的结果类型为true或false
scope用来存放var属性存放的范围
<form action="index.jsp" method="post">
<!-- 用户输入的数据存入到${param.score}变量中去 -->
<input type="text" name="score" value="${param.score }"/>
<input type="submit" value="submit"/>
</form>
<c:if test="${param.score>=90 }" var="result">
<c:out value="优秀"></c:out>
</c:if>
<c:out value="${result }"></c:out>
JSTL之choose、when、otherwise
<c:choose>
<c:when test="${param.score>=90 && param.score<=100 }">
<c:out value="优秀"></c:out>
</c:when>
<c:when test="${param.score>=80 && param.score<90 }">
<c:out value="良好"></c:out>
</c:when>
<c:when test="${param.score>=70 && param.score<80 }">
<c:out value="一般"></c:out>
</c:when>
<c:when test="${param.score>=60 && param.score<70 }">
<c:out value="及格"></c:out>
</c:when>
<c:when test="${param.score<60 && param.score>0 }">
<c:out value="不及格"></c:out>
</c:when>
<c:otherwise>
<c:out value="您的输入不合法"></c:out>
</c:otherwise> </c:choose>
第二种用法:
只使用choose和when
JSTL之forEach标签:
根据循环条件遍历集合中的元素
var 设定变量名用于存储从集合取得的元素(必须无默认值)
items指定要遍历的集合(必须无默认值)
begin、end用于指定遍历的起始位置和终止位置‘
step指定循环的步长
varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素状态
1、全部遍历
<c:forEach var="存储当前遍历元素的变量" items="待遍历集合">
</c:forEach>
<%
List<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("orange");
fruits.add("pear");
fruits.add("watermelon");
fruits.add("banana");
request.setAttribute("fruits", fruits);
%>
<c:forEach var="fruit" items="${fruits }">
<c:out value="${fruit }"></c:out><br>
</c:forEach>
2、部分遍历
<c:forEach var="fruit" items="${fruits }" begin="2" end="4">
<c:out value="${fruit }"></c:out><br>
</c:forEach>
<c:forEach var="fruit" items="${fruits }" varStatus="fru">
<c:out value="${fruit }"></c:out><br>
<c:out value="index属性值:${fru.index }"></c:out><br>
<c:out value="first属性值:${fru.first }"></c:out><br>
</c:forEach>
JSTL之forTokens:
用于浏览器字符串,并根据指定字符串截取
items指定被迭代的字符串
delims指定使用的分隔符
var指定用来存放遍历到的成员
<c:forTokens items="010-8809687879-142" delims="-" var="num">
<c:out value="${num }"></c:out>
</c:forTokens>
URL操作标签:
JSTL之import标签:
URL被导入资源的URL路径
context相同服务器下其他的web工程,必须以“/”开头
var以String类型存入被包含文件的内容
Scope var变量的JSP范围
charEncoding被导入文件的编码格式
varReader以Reader类型存储被包含的文件内容
<!-- 导入网络绝对路径 -->
<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标签:
<c:redirect url="firstDemo.jsp">
<!-- 传递参数 -->
<c:param name="username">lily</c:param>
<c:param name="password">passw0rd</c:param>
</c:redirect>
JSTL之URL标签
<!-- 动态生成URL -->
<c:if test="${1<3 }">
<c:set var="partURL">aa</c:set>
</c:if>
<c:url value="http://localhost:8081/${partURL }" var="newURL" scope="session"></c:url>
<a href="${newURL }">新的URL</a>
JSTL常用函数:
<c:out value="${fn:contains('nyan','a')}"></c:out>
fn:endsWith()
fn:indexOf()
fn:escapeXML()
fn:containsIgnoreCase()

JSP--常用标签的更多相关文章
- JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)
1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...
- jsp学习--JSP运行原理,九大隐式对象和JSP常用标签
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- 咸鱼入门到放弃7--jsp<二>jsp常用标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- JSP常用标签
JSP常用标签可以理解为JSTL user:普通用户 admin:站点管理员 JSTL1.1.2下载地址:http://archive.apache.org/dist/jakarta/taglibs/ ...
- jsp常用标签和标签库及javaBean规范
1 常用标签forward,pararm,include <jsp:forward page=""></jsp:forward> <jsp:param ...
- [转]Jsp 常用标签
<jsp:include> 动态引入,涉及到的多个 jsp 页面会翻译成多个 servlet 并在执行时合并. include 指令 是静态引入,涉及到的多个 jsp 页面会翻译成一个 s ...
- JSP常用标签——JSTL标签和EL表达式
一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复 ...
- java web中jsp常用标签
在jsp页面开发过程中,经常需要使用JSTL(Java Server Pages Standard Tag Library)标签开开发页面,是看起来更加的规整舒服. JSTL主要提供了5大类标签库: ...
- jsp 常用标签的使用
jsp中定义实体bean<jsp:useBean id="clu" class="cn.domain.CacluBean"></jsp:use ...
- jsp的标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
随机推荐
- python3读取BJDA药品经营企业数据
#-*- coding:utf-8 -*- #读取北京FDA的药品经营企业数据 # 20161125 zhangshaohua import re import urllib.request impo ...
- 从sql走向linq的我撞死在起点上
[本文纯个人理解,错误轻喷,非常希望能有大神指点] A left (outer) join B on A.bid=B.id 上面这句话叫做左连接,原因是left(左)join(加入,连入)被译为左连接 ...
- UGUI随记
<color=#ffef00ff>武器</color>:巨剑 <color=#ffef00ff>种族</color>:人族 <color=#ffe ...
- Composer的Autoload源码实现1——启动与初始化
前言 上一篇文章,我们讨论了 PHP 的自动加载原理.PHP 的命名空间.PHP 的 PSR0 与 PSR4 标准,有了这些知识,其实我们就可以按照 PSR4 标准写出可以自动加载的程序了.然而我们为 ...
- 自定义 ViewController 容器转场
本文转载至 http://blog.csdn.net/yongyinmg/article/details/40621463 在话题 #5 中,Chris Eidhof 向我们介绍了 iOS7 引入的新 ...
- 【BZOJ3689】异或之 堆+可持久化Trie树
[BZOJ3689]异或之 Description 给定n个非负整数A[1], A[2], ……, A[n].对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A ...
- openstack 官方镜像qcow2 下载和修改密码
下载地址: CentOS6:http://cloud.centos.org/centos/6/images/ CentOS7:http://cloud.centos.org/centos/7/imag ...
- python 学习2:生成器,迭代器,装饰器
1.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万 个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那 ...
- Qt Creator 调试器 在 Ubuntu 13.10下 局部变量和表达式(Locals) 无内容
此篇算是一个翻译,万一有国内同样的小白遇到同样问题,方便参考. 原文http://hostilefork.com/2013/10/20/qtcreator-debugger-no-locals-ubu ...
- 培训笔记——ubuntu安装
1.选择安装位置,如果是做双系统提前准备一个分区,如果覆盖安装就无所谓了2.下载iso镜像文件,制作启动盘,Windows或linux环境下分别有相应的软件可以制作启动光盘或U盘3.开始安装一 设置开 ...