一、JSTL简介及在项目中安装配置

1,  简介

使用JSTL标签的目的就是不希望jsp中出现java逻辑代码

分类

2,  JSTL的安装配置

首先将jar包中的各个标签库配置文件拷贝到项目WEB-INF目录下,以供使用

然后再将整个jar包拷贝至tomcat/lib目录下

3,  JSTL简单使用

为了方便使用,也可以统一在web.xml文件中配置标签库的映射路径

此后,可以通过映射路径名加载标签库

二、核心标签库

1,要求:利用核心标签库提供的主要标签完成判断、迭代、输出等常见操作

2,主要标签

3.表达式控制语句

3.1<c:out>标签使用:代替java脚本中的<% out.println(“字符串”)%>或<%=表达式%>

功能:用来输出数据对象(字符串或表达式)的内容或结果。JSTL的使用和EL表达式分不开,EL虽然可以将结果直接返回给页面,但有时为空,<c:out>对此有特定的功能处理(默认值)

语法:

EscapXml表示是否将一些特殊字符进行HTML编码后输出,默认为true

使用范例

3.2<c:set>标签的使用

功能:用于把一个对象存在指定的域范围内,或者把一个对象存到指定的Map或JavaBean对象中

语法:

语法1存值,把一个值放在指定的域范围内。
    <c:set value=”1” var=”name1”
[scope=”page|request|session|application”]/>

    含义:把一个变量名为name1,值为“值1”的变量存储在指定的scope范围内。
  语法2
    <c:set
var=”name2” [scope=”page|request|session|application”]>

      值2
    </c:set>
    含义:把一个变量名为name2,值为值2的变量存储在指定的scope范围内。
  语法3
    <c:set value=”3” target=”JavaBean对象” property=”属性名”/>
    含义:把一个值为“值3”赋值给指定的JavaBean的属性名。相当与setter()方法。
  语法4
    <c:set
target=”JavaBean
对象” property=”属性名”>
      值4
    </c:set>
    含义:把一个值4赋值给指定的JavaBean的属性名。
  从功能上分语法1和语法2、语法3和语法4的效果是一样的,只是把value值放置的位置不同,至于使用那个根据个人的喜爱,语法1和语法2是向scope范围内存储一个值,语法3和语法4是给指定的JavaBean赋值。

 

标签属性:

使用范例

将对象存在指定的域范围中

设置javaBean属性值

将一个data对象的值存到Map集合中

相当于插入一对键值,然后可以通过键找到相应值

3.3<c:remove>标签的使用

功能:从指定JSP范围移除指定属性

语法:<c:remove var=”变量名”
[scope=”page|request|session|application”]>其中scope可以省略

使用范例

3.4<c:catch>标签的使用

功能:用于捕获嵌套在标签体中的内容抛出的异常

语法:<c:catch [var=”varName”]>可能产生异常的代码</c:catch>。var属性用于标识捕获的异常,这个异常将保存在page域中

使用范例

3.5<c:if>标签的使用

功能:与程序if语句相同

语法:

语法一:没有标签体的

 <c:if
test="testCondition" var="varName"
[scope="{page|request|session|application}"]/>

    语法二:有标签体的

      <c:if test="testCondition"
[var="varName"]
[scope="{page|request|session|application}"]>

          标签体内容
    </c:if>

    参数说明:(1test属性用于存放判断条件,一般为EL表达式

              2var属性指定存放判断结果的属性名,truefalse

              3scope属性用来指定var属性存放的范围

    

     使用范例:设计一个登陆页面tagTest.jsp,将登陆情况保存在session域中,并根据登陆情况做出相应反应

    

     输入admin,点击登陆

    

     3.6流程控制标签:<c:choose>,<c:when>,<c:otherwise>完成switch

     语法:

<c:choose>作为父标签

<c:when
test=”
条件一”>//业务逻辑</c:when>

<c:when
test=”
条件二”>//业务逻辑</c:when>

<c:otherwise>//业务逻辑</c:otherwise>

 

使用范例:

3.7循环标签:<c:forEach>

功能:根据循环条件遍历集合中的元素,如果不设置集合,则与for()循环功能相同与从begin开始循环执行标签体直到end,并将循环值保存在var中

语法:

<c:forEach
      var=”name”
      items=”Collection”
      varStatus=”StatusName”

      begin=”begin”
      end=”end”
      step=”step”>
      本体内容
    </c:forEach>

参数解析】:
  (1)var设定变量名用于存储从集合中取出的元素。
  (2)items指定要遍历的集合。
  (3)varStatus设定变量名,该变量用于存放集合中元素的信息(索引值,循环次数等)。  
 
  (4)begin、end用于指定遍历的起始位置和终止位置(可选)。
  (5)step指定循环的步长(即每次循环经过的元素个数)。

varStatus有四个状态属性

使用范例

结果

不遍历集合,仅当作循环功能使用,以下jsp打印十行十列表格,表格内容为行列乘积。如果与<c:if>连用,可实现while()循环的功能

3.8循环标签<c:forTokens>

功能:根据指定的分隔符将字符串分割成子串数组然后再迭代它们,如果未指定分隔符,则将整个元素截取,在实际应用中用于除去某些字符在页面中显示

语法:

<c:forTokens
items=”strigOfTokens”
            delims=”delimiters”
            [var=”name”
            begin=”begin”
            end=”end”
            step=”len”
          
 varStatus=”statusName”] >
        本体内容
       </c:forTokens>

【参数说明】
  (1)items指定被迭代的字符串。
  (2)delims指定使用的分隔符。
  (3)var指定用来存放遍历到的成员。
  (4)begin指定遍历的开始位置(int型从取值0开始)。
  (5)end指定遍历结束的位置(int型,默认集合中最后一个元素)。
  (6)step遍历的步长(大于0的整型)。
  (7)varStatus存放遍历到的成员的状态信息。

使用范例

3.9<c:import>标签的使用

功能:该标签可以把其他静态或动态文件包含到本JSP页面,与<jsp:include>的区别为:<jsp:include>只能包含同一个web应用中的文 件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

语法:

【语法1】:
<c:import
    url=”url”
    [context=”context”]
    [value=”value”]
    [scope=”page|request|session|application”]
    [charEncoding=”encoding”]/>

【语法2】:
<c:import
    url=”url”
    varReader=”name”
    [context=”context”]
    [charEncoding=”encoding”]/>

【参数说明】:
(1)URL为资源的路径,当引用的资源不存在时系统会抛出异常,因此该语句应该放在<c:catch></c:catch>语句块中捕获。
(2)引用资源有两种方式:绝对路径和相对路径。
    使用绝对路径的示例如下:<c:import
url=”http://www.baidu.com”>
    使用相对路径的示例如下:<c:import
url=”aa.txt”>,aa.txt放在同一文件目录。
(3)如果以“/”开头表示应用的根目录下。例如:tomcat应用程序的根目录文件夹为webapps。导入webapps下的文件bb.txt的编写方式为:<c:import url=”/bb.txt”>
    如果访问webapps管理文件夹中其他web应用就要用context属性。
(4)context属性用于在访问其他web应用的文件时,指定根目录。例如,访问root下的index.jsp的实现代码为:<c:import url=”/index.jsp” context=”/root”>
    等同于webapps/root/index.jsp
(5)var、scope、charEncoding、varReader是可选属性。

使用范例

使用绝对路径导入网页

使用相对路径引用本应用中的文件

将导入的文件存储在域中,然后通过<c:out>输出

3.10<c:url>标签

功能; 标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。

语法:

【语法1】:指定一个url不做修改,可以选择把该url存储在JSP不同的范围中。
<c:url

value=”value”
    [var=”name”]
    [scope=”page|request|session|application”]
    [context=”context”]/>

【语法2】:配合 <c:param>标签给url加上指定参数及参数值,可以选择以name存储该url。
                     <c:url
                  value=”value”

                  [var=”name”]
                  [scope=”page|request|session|application”]
                  [context=”context”]>
                <c:param
name=”参数名” value=”值”>
                     </c:url>

使用实例(在浏览器可见注释方法中,不能有特殊字符出现,否则可能报错)

点击”百度首页(不带参数)”

点击”百度首页(带参数)”

3.11<c:redirect>标签

功能:该标签用来实现请求的重定向。同时可以配合使用<c:param>标签在url中加入指定的参数。

语法:

【语法1】:
<c:redirect url=”url” [context=”context”]/>
【语法2】:
<c:redirect url=”url”[context=”context”]>
    <c:param name=”name1” value=”value1”>
</c:redirect>
【参数说明】:
(1)url指定重定向页面的地址,可以是一个string类型的绝对地址或相对地址。
(2)context用于导入其他web应用中的页面。当要使用相对路径重定向到同一服务器下的其他web资源时,context属性指定其他web应用程序的名称

使用范例

当服务器解析此jsp时会把地址重定向到百度首页,并且传入参数

3.12<c:param>标签

 在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套 在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
  <c:param>标签在为一个URL地址附加参数时,将自动对参数值进行URL编码,例如,如果传递的参数值为“中国”,
则将其转换为“%d6%d0%b9%fa”后再附加到URL地址后面,这也就是使用<c:param>标签的最大好处

10.javaweb核心标签库详解的更多相关文章

  1. JSTL核心标签库详解

    <c:out>标签 标签用于输出一段文本到浏览器中. 属性名 是否支持EL 属性类型 属 性 描 述 value true Object 指定要输出的内容 escapeXml true B ...

  2. 13.javaweb xml标签库详解

    一.XML标签简介 1,  作用 2,  标签分类 XPath 路径标记 查找节点元素示例 2.1<x:out> 2.2<x:parse> 操作示例:导入XML文件,解析,然后 ...

  3. Struts标签库详解【3】

    struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri= ...

  4. JavaWeb学习篇之----自定义标签&&JSTL标签库详解

    今天来看一下自定义标签的内容,自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,JSP规范说的很清楚,就是Jsp页面中禁止编写一行Java代码,就是最好不要有Java脚本片段,下面 ...

  5. java-自定义标签&&JSTL标签库详解

    自定义标签是Jav aWeb的一部分非常重要的核心功能,我们之前就说过,JSP规范说的很清楚,就是Jsp页面中禁止编写一行Java代码,就是最好不要有Java脚本片段,下面就来看一下自定义标签的简介: ...

  6. Struts标签库详解【1】

    struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri=& ...

  7. struts2标签库详解

    要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts ...

  8. [转]Struts标签库详解

    本文转自:http://hi.baidu.com/xzkcz/blog/item/5cf9f91f01beb9f4e0fe0bd4.html   Struts提供了五个标签库,即:HTML.Bean. ...

  9. Struts2 标签库详解2

    Struts2标签库 包括: OGNL Struts2标签分类 控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, ...

随机推荐

  1. 小米2017秋招真题——电话号码分身问题(Java版)

    原题描述如下: 通过对各个数字对应的英文单词的分析,可以发现一些规律: 字母Z为0独占,字母W为2独占,字母U为4独占,字母X为6独占,字母G为8独占: 在过滤一遍0.2.4.6.8后,字母O为1独占 ...

  2. Sql Server——查询(二)

    上次写了查询里的一些简单的查询方法,如果说上次的是初级查询,那这次的就是高级查询了. 今天主要是聚合函数.分组查询.连接查询.联合查询.在我看来前三个挺简单的,稍微难理解点的也就最后一个,为什么呢?因 ...

  3. [bzoj1059] [ZJOI2007] 矩阵游戏 (二分图匹配)

    小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作:行交换操作:选 ...

  4. NOIP2017SummerTraining0717

    个人感受:自己水平是真的差劲,和他们不是一个档次的,第二题,如果不是陈载元暴力过了,我也不会那么早去A了第二题,第一题真的是无语,以前做到过,还想到了每个对应值a[i]-i,但是没想出来,真的是 可惜 ...

  5. python --- socket模块详解

    socket常用功能函数: socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)                  ...

  6. 【技巧】datagrid锁定列后重新加载时出现错位问题的解决

    [问题描述]:有时候datagrid设置了锁定列后,在重新加载datagrid数据时,出现锁定列与非锁定列数据错位的问题,如图: [问题分析]:查看css样式我们发现,锁定的列和非锁定的列属于两个不同 ...

  7. LeetCode-2 Keys Keyboard

    package Classify.DP.Medium; import org.junit.jupiter.api.Test; /** Initially on a notepad only one c ...

  8. Android 性能测试之方向与框架篇

    假期结束,你的状态有没有回归?那么,放空脑袋后,先来学习学习,欢迎大家继续关注腾讯云技术社区. 作者:李帅 导语 借项目的开发周期,把思考了一段时间的场景化性能测试框架搭建起来,包括 耗电性能测试.内 ...

  9. 第八章 关于SQL查询出错的一些问题

    问题一:在使用MySQL使用传参查询并返回结果集时,没错,小伙伴们都知道少不了Statement接口和PreparedStatement对象.问题来了,有时竟然查询不了,Debug进去,发现执行的SQ ...

  10. aspnet中通过多条件筛选来显示数据的实现

    UI图: 功能实现: 1.勾选住哪个选项之后,就加入了筛选.支持姓名的模糊查询. 2.对筛选出来的数据可以直接修改,并更新回数据库. 说明:显示的数据来自T_User表.数据显示控件使用的是 List ...