丢失的岸上花(05)

一、JSTL简介:

12月3日

JSTL全名为JavaServer Pages Standard Tag
Library,中文名称为JSP标准标签函数库,方今风尚的版本为1.2。JSTL是由JCP(Java
Community Process)所钦点的专业规则,它重要提须要Java
Web开发人士叁个标准通用的标签函数库。

刘陵的室友元霜过生日,凑了三个女人一起吃饭。吃到四分之二的时候,四个哥们敲门进去。

Web 程序开发人士可以使用JSTL和EL来支付Web程序,取代守旧从来在页面上嵌入Java程序(Scripting)的做法,以抓牢程序可读性、维护性和方便性。

多少个说,“能请你们帮个忙啊?小编和她打赌,说假使自己能请你们中的3个与世长辞喝杯酒,他就要把桌上的六瓶都喝掉,假使自个儿做不到,那吃酒的便是自小编了。”

既然如此是库文件,那大家就要先下载咯。下载链接:http://tomcat.apache.org/

多少个女孩子面面相觑,不知如何是好。唯有刘陵在一边独力默默地笑,她暗笑那多少个男士无聊的手法和技俩。

澳门葡京手机网址 1

“没关系的,就过去一眨眼就好,帮援助吗。”趁着大家谈谈着,他又催促道。

点击上图中红框部分的Taglibs,进入如下界面:

女人们也初始起哄了,“去吗去吗,元霜要不就您去呢,反正你过生日啊!帮帮人家不也挺好的么?”

澳门葡京手机网址 2

元霜无奈也无法太扫了豪门的兴,就答应了随后过去。

点击上航海用教室中的红框部分,进入如下界面:

过了一阵子他回到,说,“一堆的都以男生,也没怎么,就喝了一杯酒,望着万分输了的男子灌完那六瓶。”

澳门葡京手机网址 3

随即那一个女人也起先不安分起来了。“要不大家也叫她们复苏吗,正好让她们给你祝寿啊!!”

上海教室中,点击最新版本进行下载。

“对对,那样好,那样好玩啊!”

下载完之后,将jar包复制到JavaWeb工程的/WebContent/WEB-INF/lib目录下即可使用澳门葡京手机网址,。

“那何人去叫他们吧?元霜,要不依旧您去啊,你熟习地型!”

 

“那要命啊,小编曾经去过三遍了,本次得换个人。”

JSTL所提供的标签函数库首要分为中国共产党第五次全国代表大会类:

正七嘴八舌地说着,服务员从门前走过,一个人意想不到说,要不大家让服务员去把她们找来吧。哈哈。那么些提出同样通过了。

  • (1)主干标签库 (Core tag library)
  • (2)I18N 格式标签库 (I18N-capable formatting tag library)
  • (3)SQL 标签库 (SQL tag library)
  • (4)XML 标签库 (XML tag library)
  • (5)函数标签库 (Functions tag library

跟着那多个男子就进来了。他们熟知地自笔者介绍,笔者叫万欣,是以此学校的国防生……你们能看出来大家大几的吗?

最常用的是首先个,别的多少个不是很常用。

那时候又繁杂了,有人喊大学一年级有人喊大二,只有刘陵目光没有典型自顾自地说,大四。

中央标签库 (Core tag
library)
第2有以下三种:

“你怎么理解?”

壹 、表明式标签:

“因为看你们很沧桑了。”(刘陵)“因为大家望着沧桑了?”(万欣)

  • <c:out>:重要用以显示数据的内容,就像是<%= scripting-language %> 一样
  • <c:set>:主要用来将变量储存至JSP范围中可能JavaBean的质量中
  • <c:remove>:首要用来移除变量
  • <c:catch>:首要用以处理发生错误的尤其情形,并且将错误消息储存起来(用的少)

刘陵和万欣大概是还要说。若有似无的笑始终挂在刘陵的脸颊,不领会有没有何人会映入眼帘。混乱中山大学家七嘴八舌。极力地想要掏出语言中的全数幽默。可是心里却愈发没底,不晓得那几个说的话毕竟能够在哪落脚。反正挂一漏万,说出的话并不会有何人要认真的位于心上,那便是大家为什么能够在外人近年来滔滔不竭。

二 、流程序控制制:

相机行事之下,万欣说,要不我们都留个号码吧。

  • <c:if>:用途和我们一般在程序中用的if
    一样
  • <c
    :choose>
    :自己只当作 <c:when> 和
    <c:otherwise> 的父标签
  • <c :when>/<c
    :otherwise>
    :使用<c:when>和<c:otherwise>来做流程序控制制时,两者都不可能不为<c:choose>的子标签(类似于switch···case···)

在外这么长年累月,那种业务一般,然则什么人会把分外留下的号子确实当贰回事,超越一全场馆下,依然把它搁置在手提式无线电电话机中,最终翻看手提式无线话机时却想不起来那到底是何人而删掉。那种毫无意义的作业做与不做都是贰个样的。当我们都说完的时候,刘陵认为就这么过了,更何况他连名字都不通晓,想他之后会怎么来对号落座,把那一个号码的全体者都认得三次。可依然有人问了,刘陵只能断断续续地说了出去。她一而再不习惯我们一起听着她一位说话。她习惯了活在低低的地点。

三 、迭代操作:

万欣要了她们的号子,和刘陵的眼神交错而过的时候,刘陵问他:“你是国防生?那您认识李园海吗?他是本身同乡啊。”

  • <c
    :forEach>
    :循环遍历,它能够将聚集(Collection)中的成员循序浏览贰次。运作情势为当条件相符时,就会不断重复执行<c:forEach>的本体内容。
  • <c
    :forTokens>:用来浏览一字符串中兼有的成员,其成员是由定义符号(delimiters)所相隔的。

万欣:“认识啊!”

上面来详细介绍一下这几个标签。

刘陵一向以为第2回主动和人说是还是不是认识某人那种表现有套近乎的存疑,可却有种一差二错的觉得,就如是从心里就想接近。

二 、宗旨标签库:

散了之后刘陵去上他的吉他课。

包涵Web应用的宽广工作, 比如:巡回、表达式赋值、 基本输入输出等。

在回到的旅途,收到了素不相识的短信,号码和过去给她发短信的不太雷同。她总上能只顾到那些毫无意义的细节并记在心上。

一 、表明式标签:

“笔者叫万欣,那您啊?”

  • <c:out>:重要用来展现数据的剧情,就像 <%=
    scripting-language %> 一样
  • <c:set>:重要用来将变量储存至JSP范围中或许JavaBean的习性中
  • <c:remove>:主要用来移除变量
  • <c:catch>:主要用来处理发生错误的老大现象,并且将错误消息储存起来(用的少)

“刘陵。”

代码举例:

好直接的开场啊,这样少见的轻率竟然让刘陵有个别奇怪了。但是他不情愿企及叁个毫不相关的人,不愿说太多,于是一切标题差不离用了单音节来回复。那些早上还说了一些什么样他不再记得了。那一个夜晚,刘陵记住的唯有便是其一名字,却不曾预想它对她的机要。

  • <c:out>标签

12月4日

新建JavaWeb工程Test08,index.jsp代码如下:

夜幕,刘陵在体育馆打羽球。电话响了,依旧特别号码。男人一个劲在夜晚的时候特意的寂寞,并且变得不安分。刘陵接了对讲机,可是训练馆太吵,刘陵也不愿多说哪些,直接敷衍几句便挂断了。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3     <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 <%
10     request.setAttribute("name", "smyhvae");
11 %>
12 </head>
13 <body>
14     <c:out value="${requestScope.name} "></c:out>
15  
16 </body>
17 </html>

挂了后她用短信要了刘陵QQ。

第03行、10行、14行是自家添加的代码。

“到了卧室就告诉作者,作者想给你打电话。笔者意识二个很想得到的事要报告您,你想不想领悟?”

03行(固定代码):使用JSTL不要遗忘引入标签库。prefix=”c”是前缀,“c”代表的是“<c:out>”那个表明式。uri中是填入命名空间,能够通过代码提示选取http://java.sun.com/jsp/jstl/core。可以通过下面的方式找到这个uri:在Java
Reasources/Libraries/Web App
Libraries/jstl.jar/META-INF目录下许多tld格式的文书,那几个tld文件指的是标签库的扬言文件:

“无所谓,你想说就会说的。”

澳门葡京手机网址 4

“好啊,大家同一天诞辰。”

上海教室中的c.tld文件表示的就是core这么些标签库,打开它,能够看到uri:

“嗯
。”刘陵显得很漠视,她认识她才一天而已,本来就一向不要求表现得这么热情。

澳门葡京手机网址 5

“你是自个儿赶上的首先个。”

实际第03行代码是一向写死了的,添加即可,能够不用深究。

其实,要找三个和友好同一天华诞的人,并不是何等很狼狈的事,世界如此大,三百六十百分之二十的概率并不算小。

万一引入core标签库,此时在body标签中,只要输入”<c”,就能够透过代码提示看到不可胜计标签。

只是喜欢上一位的时候,他们才会刻意地从对方身上找到某种相似。喜欢同一首歌,同一部影视,同一本书,甚至是均等种说话的办法,走路的姿势,思考的状态……把那几个都位列出来的时候,异想天开地发现本身和对方几乎是天生一对。

澳门葡京手机网址 6

又恐怕,为了让对方喜欢上和谐,于是便刻意找出四个人的一部分形似,企图使对方确认。那种利益的做法未免显得某些稚嫩和假劣,只是因为那都是由于单纯而急于的爱,就怎么样都得以包容了。

我们在第7行给request添加1个属性,然后就足以在第②4行通过out输出标签输出那几个值了(当然,也足以用EL表达式来输出),运维程序,效果如下:

实质上,有众几个人都忘了,那个世界上,把随便三个拉过来,也能找到很多一般的,跟所谓的“缘分”和“天意”毫不相关。

澳门葡京手机网址 7

归来后,刘陵并不曾找她,一方面是出于女人的矜持,另一方面正是在高等学校那种张扬的环境里,各种男士都像野兽觅食一样,像她如此有才化险为夷又略显娇弱的女孩子,自是有众六个人追的,她一直就不在乎多一个追随者。

  • <c:set>标签

    1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%>
    3 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    4 http://www.w3.org/TR/html4/loose.dtd">
    5
    6
    7
    8 Insert title here
    9 <% 10 request.setAttribute("name", "smyhvae"); 11 %>
    12
    13
    14 <%--输出标签 --%>
    15
    16
    17 <%--定义变量标签 --%>
    18
    19 ${age }
    20
    21
    22

唯独万欣照旧发短信过来了。

见18、19行代码。

“到卧室了吧?”

成效如下:

“嗯 。”

澳门葡京手机网址 8

接着,他打电话过来。

 

万欣:“你的声响很亲和”

贰 、流程序控制制:

刘陵:“嗯。”

  • <c:if>:用途和我们一般在先后中用的if
    一样
  • <c
    :choose>
    :本人只当做 <c:when> 和
    <c:otherwise> 的父标签
  • <c :when>/<c
    :otherwise>
    :使用<c:when>和<c:otherwise>来做流程序控制制时,两者都不可能不为<c:choose>的子标签(类似于switch···case···)

……

新建index2.sp文本。代码如下:

“作者能还是不能再见你一边?”

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 <%
10     request.setAttribute("name", "smyhvae");
11 %>
12 </head>
13 <body>
14 
15     <%--流程控制标签if --%>
16     <c:if test="${not empty requestScope.name }">
17     欢迎你,${requestScope.name }
18     </c:if>
19 
20     <c:if test="${empty requestScope.name }">
21     请登录后操作
22     </c:if>
23     <br />
24 
25     <%--流程控制标签choose --%>
26     <c:set var="age" value="22"></c:set>
27 
28     <c:choose>
29         <c:when test="${age<18 }">
30             未成年,不许进。
31         </c:when>
32         <c:when test="${age>=18 && age<50 }">
33             欢迎光临。
34         </c:when>
35         <c:otherwise>
36             老年人请注意身体。
37         </c:otherwise>
38     </c:choose>
39 
40 </body>
41 </html>

“没要求吗!只是偶遇。你连忙就会忘了本身的。”

15至22行事if标签(和if语句的法力是如出一辙的),16行中test里面的始末必须为boolean值:我们在第7行添加了name的值,然后在16行、20行判断name的值是或不是为空,进而做出判断。

刘陵完全没有想法去认识一个尚未任何印象的人,那么些寂寞的高等高校里天天都有相近的故事爆发,而真正的天荒地老并不是一遍偶然的会晤和几条一相情愿的短信能够演绎的。她也做白日梦,可只是梦而已,她从不会搅乱。

25行至38作为choose标签(和switch···case···的作用是同等的)。

(未完待续……)

运维程序,效果如下:

澳门葡京手机网址 9

 

③ 、迭代操作:

  • <c
    :forEach>
    :循环遍历,它能够将集结(Collection)中的成员循序浏览3次。运作格局为当规则符合时,就会不停重复执行<c:forEach>的本体内容。
  • <c
    :forTokens>:用来浏览一字符串中负有的分子,其成员是由定义符号(delimiters)所相隔的。

代码举例:

  • <c :forEach>

新建类User,作为遍历的靶子。User.java代码如下:

 1 package com.vae.bean;
 2 
 3 public class User {
 4     private String name;
 5     private String sex;
 6     private int age;
 7     public User() {
 8         super();
 9     }
10     public User(String name, String sex, int age) {
11         super();
12         this.name = name;
13         this.sex = sex;
14         this.age = age;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public String getSex() {
23         return sex;
24     }
25     public void setSex(String sex) {
26         this.sex = sex;
27     }
28     public int getAge() {
29         return age;
30     }
31     public void setAge(int age) {
32         this.age = age;
33     }
34     @Override
35     public String toString() {
36         return "User [name=" + name + ", sex=" + sex + ", age=" + age + "]";
37     }
38 
39     
40 }

新建文件index3.jsp,代码如下:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@page import="com.vae.bean.User,java.util.*"%>
 4 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 
11 <%
12     List<User> users = new ArrayList<User>();
13     User u1 = new User("生命壹号", "男", 22);
14     User u2 = new User("生命二号", "男", 23);
15     User u3 = new User("vae", "女", 24);
16     users.add(u1);
17     users.add(u2);
18     users.add(u3);
19     request.setAttribute("users", users);
20 %>
21 </head>
22 
23 <body>
24     <table border="1">
25         <tr>
26             <th>name</th>
27             <th>sex</th>
28             <th>age</th>
29         </tr>
30 
31         <c:forEach items="${requestScope.users }" var="user">
32             <tr>
33                 <td>${user.name}</td>
34                 <td>${user.sex}</td>
35                 <td>${user.age}</td>
36             </tr>
37         </c:forEach>
38 </body>
39 </html>

主干代码是31行至37行。

我们在12至19行里,往List中进入三个user对象的值,并放入request中。然后在第叁4行加入四个报表,在表格里透过<c
:forEach>遍历User对象中的内容,那里运用了<c
:forEach>中的五个天性:31行的”items”表示需求迭代的会合,”var”表示每便一取,定义的变量。

运行程序,效果如下:

澳门葡京手机网址 10

<c :forEach>中的属性:

我们在上头的代码中的31行用到了过<c
:forEach>中的七个属性:items和var。接下来来学习一下别的的质量:

  • begin:表示从第多少个起来索引,一般不写;
  • end:表示甘休的职位。假若要求遍历十行,在此地写10即可。
  • step:增量。

地点的三个属性用的相比较少。

  • varStatus:当前的景观。它的图景有以下多少个:

            index  索引 从0开始

            count  从1始发 当前遍历次数

            current 当前正在迭代的靶子

            first  是不是是第二个

            last   是或不是是最终三个        

咱俩给varStatus举个例子。大家在上头的index3.jsp代码中愈发助长:

index3.jsp:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@page import="com.vae.bean.User,java.util.*"%>
 4 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 
11 <%
12     List<User> users = new ArrayList<User>();
13     User u1 = new User("生命壹号", "男", 22);
14     User u2 = new User("生命二号", "男", 23);
15     User u3 = new User("vae", "女", 24);
16     users.add(u1);
17     users.add(u2);
18     users.add(u3);
19     request.setAttribute("users", users);
20 %>
21 </head>
22 
23 <body>
24 
25     <table border="1">
26         <tr>
27             <th>name</th>
28             <th>sex</th>
29             <th>age</th>
30             <th>状态值</th>
31         </tr>
32 
33         <c:forEach items="${requestScope.users }" var="user" varStatus="status">
34             <tr>
35                 <td>${user.name}</td>            
36                 <td>${user.sex}</td>            
37                 <td>${user.age}</td>            
38                 <td>
39                 index :${status.index }<br/>
40                 count :${status.count }<br/>
41                 current :${status.current }<br/>
42                 first :${status.first }<br/>
43                 last :${status.last }<br/>
44                 </td>            
45             </tr>
46         </c:forEach>
47     </table>
48 </body>
49 </html>

加粗部分的30行、33行中的varStatus属性、38行至44行是自家越来越增进的代码。运转程序,效果如下:

澳门葡京手机网址 11

通过地点的图样,再来回想一下varStatus的各类情况,就一目领会了:

  • index  索引 从0开始
  • count  从1开始 当前遍历次数
  • current 当前正在迭代的指标
  • first  是还是不是是第一个
  • last   是还是不是是最终一个 

代码举例:

  • <c :forTokens>

新建index4.jsp文件,代码如下:

index4.jsp:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 
12     <c:set var="likes" value="羽毛球,摄影,音乐"></c:set>
13     <c:forTokens items="${likes }" delims="," var="myValue">
14         ${myValue }<br/>
15     </c:forTokens>
16 </body>
17 </html>

12行:字符串的键为likes,值为”羽球,雕塑,音乐”。

13行:遍历items中的字符串,delims中的逗号是分隔符。

运营程序,效果如下:

澳门葡京手机网址 12

【工程文件】

链接:http://pan.baidu.com/s/1qWNU6Xe

密码:itqn