JSTL

1. 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:可以是字符串常量,也可以是EL表达式
     > default:当要输出的内容为null时,会输出default指定的值
     > escapeXml:默认值为true,表示转义!
 * <c:set>:设置(创建域的属性)
     > var:变量名
     > value:变量值,可以是EL表达式
     > scope:域,默认为page,可选值:page、request、session、application
2. remove
  * <remove>:删除域变量
    > var:变量名
    > scope:如果不给出scope,表示删除所有域中的该名称的变量;如果指定了域,那么只删除该域的变量。
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="张三"/>  <!--可以对参数进行url编码!!-->
    </c:url>
    结果为:/day13_1/index.jsp?username=%ED%2C%3F%ED%2C%3F
  * var:指定变量名,一旦添加了这个属性,那么url标签就不会再输出到页面,而是把生成url保存到域中。
  * scope:它与var一起使用,用来保存url。
4. if:对应java中的if语句
  * <c:if test="布尔类型">...</c:if>当test为值时,执行标签体内容!
5. choose:它对应java中的if/else if/ ... /else
  * 例如:

  <c:choose>
<c:when test="">...</c:when>
<c:when test="">...</c:when>
<c:when test="">...</c:when>
...
<c:otherwise> ...</c:otherwise>
</c:choose>

   等同与

  if(...) {
} else if( ....) {
} else if( ....) {
} else if( ....) {
} ...
else { ...}

6. forEach
  它用来循环遍历数组、集合!
  它还可以用来计数方式来循环!

计数方式:

for(int i = 1; i <= 10; i++) {
...

<c:forEach var="i" begin="1" end="10">
    ${i}
  </c:forEach>

属性:
    * var循环变量
    * begin设置循环变量从几开始。
    * end设置循环变量到几结束。
    * step设置步长!等同与java中的i++,或i+=2。step默认为1

----------------------

用来输出数组、集合!

<%

String strs={"one","two"}

request.setAttribute("strs",strs);%>

<c:forEach items="${strs }" var="str">
 ${str }<br/>
</c:forEach>

等同于

for(String str : strs) {
  ...
}

属性:
* items:指定要循环谁,它可以是一个数组或一个集合
* var:把数组或集合中的每个元素赋值给var指定的变量。

----------------------

循环状态

可以使用varStatus来创建循环状态变量!

循环状态变量有如下属性:
  * count:循环元素的个数
  * index:循环元素的下标
  * first:是否为第一个元素
  * last:是否为最后一个元素
  * current:当前元素

<c:forEach items="${list }" var="ele" varStatus="vs">
    ${vs.index} ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>
</c:forEach>

====================================

fmt库
  它是格式化库

<fmt:formatDate value="" pattern="">

value:指定一个Date类型的变量
pattern:用来指定输出的模板!例如:yyyy-MM-dd HH:mm:ss

--------------

<fmt:formatNumber value="${num1}" pattern="0.00">
  保留小数点后2位,它会四舍五入!如果不足2位,以0补位!

<fmt:formatNumber value="${num1}" pattern="#.##">
  保留小数点后2位,它会四舍五入!如果不足2位,不补位!

java与JSTL库的更多相关文章

  1. Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库

    前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. ...

  2. Java学习——JSTL标签与EL表达式之间的微妙关系

    原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...

  3. Java之JSTL标签与JavaBean

    Java之JSTL标签与JavaBean JSP.JSTL标签及 EL表达式 <!-- jstl表达式--> <dependency> <groupId>javax ...

  4. Java 框架、库和软件的精选列表(awesome java)

    原创翻译,原始链接 本文为awesome系列中的awesome java Awesome Java Java 框架.库和软件的精选列表 项目 Bean映射 简化 bean 映射的框架 dOOv - 为 ...

  5. 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分

    最近研发BDC 云开发部署平台的数据路由及服务管理器意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提 ...

  6. 从Decorator,Adapter模式看Java的IO库

    我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,<<Java与模式>>这本书也不例外,有点不一样的是,这本书在 ...

  7. java.util.stream 库简介

    Java Stream简介 Java SE 8 中主要的新语言特性是拉姆达表达式.可以将拉姆达表达式想作一种匿名方法:像方法一样,拉姆达表达式具有带类型的参数.主体和返回类型.但真正的亮点不是拉姆达表 ...

  8. 使用Java线程并发库实现两个线程交替打印的线程题

    背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题.晚上闲着没事就决定把它实现出来. 题目: 1.开启两个线程,一个线程打印A-Z,两一个线程打印1-52的数据. 2.实现交 ...

  9. Java 验证码识别库 Tess4j 学习

    Java 验证码识别库 Tess4j 学习 [在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下 ...

随机推荐

  1. dotnet new 命令使用模板

    dotnet new 命令使用模板快速生成单页应用. 最新版.NET Core SDK RC4 最大改动是更新了 dotnet new 命令. dotnet new 默认不再创建控制台应用,而是展示帮 ...

  2. MVC中登录页图片验证码总结

    直接上代码了 using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imagi ...

  3. Angular企业级开发(7)-MVC之控制器

    1.MVC中的控制器 AngularJS的控制器主要为了把模型和视图连接在一起.大多数业务逻辑操作都会放在视图对应的控制器中.当然如果我们能够把业务逻辑放到后端的REST服务中,就可以开发轻量级Ang ...

  4. wpf的无边框窗体透明

    本人做了3年的winform,来了新的工作,需要使用wpf.对于wpf,本人小白一个.说的不对的地方,请大家多多指导.... 今天先从wpf的窗体属性开始说起! 需要做的项目功能大概和电脑桌面类似,需 ...

  5. C++拷贝构造&操作符重载

    头文件 DString.h如下 #ifndef __DSTRING_H #define __DSTRING_H #endif #include <stddef.h> class DStri ...

  6. win8系统不小心禁用了管理员权限怎么解决

    第一步:查看系统有没有其他管理员账户 按win+x键,然后选择命令提示符 点击命令提示符打开窗口,输入net localgroup Administrators命令,然后回车 如上图,查看窗口中的&q ...

  7. Vue学习之路---No.1(分享心得,欢迎批评指正)

    首先为了打消大家对Vue.js存在的顾虑,先通过大家所熟知的JQ作为对比. 都知道JQ的语法相对简单.清楚.使用方便.功能齐全: 那么Vue.js呢,同样的,Vue.js与JQ在很多地方都是相同之处, ...

  8. LeetCode 2. Add Two Numbers 解题报告

    题意: 有两个链表,它们表示逆序的两个非负数.例 (2 -> 4 -> 3)表示342,求两个数字的和,并用同样的方式逆序输出.如342+465 = 807,你需要把结果表达为(7 -&g ...

  9. JavaScript数据结构——栈的实现

    栈(stack)是一种运算受限的线性表.栈内的元素只允许通过列表的一端访问,这一端被称为栈顶,相对地,把另一端称为栈底.装羽毛球的盒子是现实中常见的栈例子.栈被称为一种后入先出(LIFO,last-i ...

  10. Rotate Array leetcode

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array  ...