jsp之jstl

JSTL概述:
apache的东西,依赖EL;
使用jstl需要导入jstl1.2.jar
四大库:
core  :核心库
fmt :格式化日期、数字
sql :过时
xml: 过时
2、导入标签库
* jar包
*在jsp页面中,<%@taglib prefix="前缀" uri="路径"%>
======================================================
core 标签库常用标签(c标签)
1、out和set
<c:out value="aaa"/>
<c:out value="${aaa}"/>
<c:out value="${aaa}" default="bbb"/>
<c:out value="${aaa}" default="bbb" escapeXml="true"/>  默认值为true表示转义;
<c:set var="name" value="value" scope="request"/>
var:变量名  value:变量值   scope:设置域page/request/session/application如果不申明默认为page
2、remove
<c:remove var="a"/>
scope:如果不写默认删除所有域的变量名为a的值,如果指定就只删除指定的;
3、url
value :指定一个路径!他会在路径前面自动添加项目名。
<c:url value="/index.jsp"> 它会输出/day13_1/index.jsp
子标签:<c:param> 用来给url后面添加参数 例如:
    <c:url value="/index.jsp">
        <c:param name="username" value="zhangsan"/>
    </c:url>
结果为:/day13_1/index.jsp?username=%ED%2c%d3%2D%4F 会进行url编码

var:一旦添加这个属性,url不会输出到页面而是添加到域中进行保存;
scope:与var一起使用,用来保存url的指定域
4、if
<c:if test="boolean值">  当test值为true时,执行下面语句
<c:set var="a" value="hello" />
<c:if test="${not empty a}">
    <c:if>    
5、choose
<c:choose>
    <c:when tedt="">...</c:when>
    <c:when tedt="">...</c:when>
    <c:when tedt="">...</c:when>
    <c:otherwise>.....</c:otherwise>
</c:choose>
6、forEach
它用来循环遍历数组和集合,它还可以来计数方式的循环!
***计数方式:
<c:forEach var="i" begin="1" end="10" step="2">  相当于i>=1 i<=10  step="步长"
${i}<br/>
</c:forEach>
var = 循环变量
begin=设置循环变量从几开始
end=设置循环变量到几结束
step=设置步长   step默认为1  
***遍历数组和集合:
1、创建数组
<%
String[] str = {"name","value"}
request.setAttribute("arr",str);
%>
2、遍历数组
<c:forEach items="${str}" var="s">
    ${s}<br/>
</c:forEach>
items:要遍历的数组或者集合
var :定义遍历的每个成员
forEach循环状态:
可以使用varStatus来创建循环状态变量!
count:当前已遍历元素个数
last:当前循环是否为最后一圈
first:是否为第一个元素,第一圈
index:当前元素下标
current:当前对象
<%
    ArrayList<String>list= new ArrayList<String>();
    list.add("one");
    list.add("two");
    list.add("three");
    pageContext.setAttribute("list",list);
%>
<c:forEach items="${list}" var="ele" varStatus="vs">
${vs.index}${vs.count}${vs.first}${vs.last}${vs.current}
</c:forEach>
***fmt库:
格式化库
先导入/jsp/jstl/fmt标签库
1、格式化日期
<%
    Date date = new Date();
    request.setAttribute("date",date);
%>
<fmt:formatDate value="${requestScope.date}" pattern="YYYY-MM-DD  HH:MM:SS"/>
value 是一个Date类变量
pattern 是输出的日期格式
2、格式化数字
<%
    request.setAttribute("num1",3.1415926);
%>
<fmt:Number value="${requestScope.num1}" pattern="0.00"/>
pattern 默认小数点位数,并默认四舍五入,缺位会以0补位
<fmt:Number value="${requestScope.num1}" pattern="#.##"/>
区别在于不补位,都四舍五入;
***自定义标签:
1、标签处理类(标签也是一个对象,那么就需要先有类)
2、tld文件,他是一个xml
3、页面中导入tld文件位置<%@ taglib prefix="" uri="tld真实路径"%>
*标签处理类
早期javaee提供interface Tag,后来有了很多实现类,为了操作方便sun公司提供了interface SimpleTag;
JspTag  是Tag和SimpleTag的父亲
我们用的是SimpleTag,方法如下
void  doTag() :每次执行标签时,都会调用这个方法;
JspTag getParent():返回父标签
void setJspBody(JspFragment jspbody):设置标签体
void setJspContext(JspContext pc) :设置标签上下文对象 PageContext是JspContext的儿子
void setParent():设置父标签
这些方法都是TOMcat自己调用,getParent()方法我们自己调用,但是基本不使用;
所有的setxxxxx方法都会在doTag方法之前被调用;所以在doTag中就可以使用tomcat传递过来的对象了!
*配置TLD文件:
tld文件一般都放在WEB-INF之下,这样保证安全
*模板可以去core标签的tld文件里面借
<tag>
    <name>mytag1</name>   //指定标签的名称
    <tag-class>cn.itcast.tag.MyTag1</tag-class>  //指定标签类位置
    <body-content>empty</body-content>  //指定标签体类型,我们这里使用空标签!例如:<br/>自己开始自己结束
</tag>
为了方便我们可以使用实现类SimpleTagSupport,这个类已经自动帮我们保存了tomcat传递来的东西,并提供了get方法

时间: 2024-08-03 08:36:34

jsp之jstl的相关文章

jsp之jstl标签

常用jstl标签 一.<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 核心标签 1.符合条件就输出,没有对应的else <c:if test="条件">  输出内容  </c:if> 2.符合某个条件后就不再执行后面的条件,没有条件适合就执行otherwise <c:choose> <c:when test=&q

IT忍者神龟之tomcat、servlet、JSP、JSTL版本支持对应表

Tomcat版本 Servlet版本 Jsp版本 Jstl版本 6.0.x 2.5 2.1 1.2.1.1.x 5.5.x 2.4 2.0 1.1.x 5.0.x 2.4 2.0 1.1 4.1.x 2.3 1.2 1.0 3.3.x 2.2 1.1 jstl对应的jar包说明: (1)JSTL1.0(包含2个jar文件:jstl.jar和standard.jar.这两个jar文件都存在于Standard1.0.x的发布版本中.) 下载地址:http://archive.apache.org/d

JSP和JSTL获取服务器参数

JSP和JSTL获取服务器参数 转自: http://blog.csdn.net/javaalpha/article/details/9063875 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

jsp去除JSTL标签库&quot;include, taglib&quot;等留下的空白行

在做项目的时候,经常会使用到JSTL和EL表达式,有时我们需要看下页面生成的源代码,但是当jsp中充满了jstl的各种标签,页面就会存在很多的空白部分,有时太多了会让浏览器假死掉,这是我们就想要去掉这些空白的部分了.去掉的方法很多,下面一一列举出来. 我的开发及服务器环境:Windows7 + Eclipse2014 + Tomcat7.0 + JDK 1.7.0 经过多番测试,可用的方法有: 1.在每个JSP的头上加上一段代码   <%@ page trimDirectiveWhitespac

JavaEE之动态页面技术(JSP/EL/JSTL)

动态页面技术(JSP/EL/JSTL) JSP技术 jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print() 3)<%!java代码%> ---- 会被翻译成servlet的成员的内容 jsp注释:  不同的注释可见范围是不同 1)Html注释:<!--注释内容--> ---可见范围 jsp源码.

JSP、JSTL、EF学习笔记

JSP 1)Java Server Page,在html中嵌入java代码 2)九个内置(隐式)对象 request response out page pageContext config session application Exception 3)JSP指令 <%@ page ... %> Page指令,定义页面属性 eg:<%@ page language="java" contentType="text/html;charset=UTF-8&qu

jsp&amp;el&amp;jstl

一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print() 3)<%!java代码%> ---- 会被翻译成servlet的成员的内容 jsp注释:  不同的注释可见范围是不同 1)Html注释:<!--注释内容--> ---可见范围 jsp源码.翻译后的servlet.页面 显

jsp之jstl核心标签库

JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代码进行抽离封装,页面上需要的时候,通过标签(和书写HTML标签差不多)的方式引入封装的Java代码.由于每个公司都有自己一套标签,开发人员在使用标签的时候,可以使用不同公司研发的标签,导致标签严重重复.为了解决这个问题,Apache Jakarta小组归纳汇总了那些网页设计人员经常遇到的问题,开发了

动态页面技术(JSP/EL/JSTL)

一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print() 3)<%!java代码%> ---- 会被翻译成servlet的成员的内容 jsp注释:  不同的注释可见范围是不同 1)Html注释:<!--注释内容--> ---可见范围 jsp源码.翻译后的servlet.页面  

jsp引用JSTL核心标签库

一.引用JSTL 1.  JSTL的引入可以让JSP代码中<%%>等代码消失掉,再结合EL表达式,会更加方便以及美观. 2.  各套框架(还没有学习,比如struts,SpringMVC等)都有自己的标签库,这时JSTL可以作为公共.通用的,横行于各框架中. 操作: 第一步:下载JSTL包 下载地址:http://tomcat.apache.org/taglibs/ 第二步,新建一个jsp页面 JSTl基本应用: 1.核心标签库:包括基本的语言功能,变量操作,流程控制等等. 2.国际化和格式化