jsp标签

来源:互联网 发布:百度慧眼数据 编辑:程序博客网 时间:2024/06/05 23:53

jsp标签

jsp标签作用

替换jsp脚本

jsp标签分类

  1. 内置标签(动作标签): 不需要在jsp页面导入标签
  2. jstl标签: 需要在jsp页面中导入标签
  3. 自定义标签 : 开发者自行定义,需要在jsp页面导入标签

动作标签(重要的三个)

转发标签: <jsp:forward />

  • 标签用于把请求转发给另外一个资源
  • <jsp:forward page="relativeURL | <%=expression%>" />
    • page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个 表达式来获得。

参数标签: <jsp:pararm/>

  • 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资 源时,可以使用<jsp:param>标签向这个资源传递参数
<jsp:include page="relativeURL | <%=expression%>">    <jsp:param name="parameterName" value="parameterValue|<%= expression %>" /></jsp:include>

包含标签: <jsp:include/>

  • 语法
<jsp:include page="relativeURL | <%=expression%>" flush="true|false"/>        <!--向被包含页面传的参数-->        <jsp:param name="参数名称" value="参数值"/></jsp:include><!-- page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。--><!--flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为false。-->
  • 原理: 包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起。 (先翻译再合并),动态包含

  • 静态包含 vs 动态包含的区别?

    1. 语法不同

      • 静态包含语法: <%@inclue file="被包含的页面"%>
      • 动态包含语法: <jsp:include page="被包含的页面">
    2. 参数传递不同

      • 静态包含不能向被包含页面传递参数
      • 动态包含可以向被包含页面传递参数
    3. 原理不同

      • 静态包含: 先合并再翻译
      • 动态包含: 先翻译再合并

其他的动作标签(不常使用)

<jsp:useBean>

  • 创建一个Bean实例
  • 语法

不存在Body的格式

<jsp:useBean    id="变量名"    scope"page|request|session|application"--Bean实例范围,属于那个域,默认是page域    {    class="package.className"--完整的类名不能与beanName同时存在,没有它时必须设置type|    type="数据类型"--指定创建实例的本身或类的父类或者接口|    beanName--指定完整的类名,可以是一个表示完整类名的表达式    }/> <jsp:setProperty name="变量名" property="*"/>

在Body内写入内容的格式

<jsp:useBean id="变量名" scope="JSP范围">    <jsp:setProperty name="变量名" property="*"/></jsp:useBean>

<jsp: setProperty>

  • 通常与<jsp: useBean>一起使用,它将调用Bean中的setXxx();

<jsp: getProperty>

  • 用来从指定的Bean中读取指定的属性值,Bean中必须有getXxx()方法

JSTL标签

介绍

JSTL (全名:java standard tag libarary - java标准标签库 )

  • 核心标签库 (c标签库) 天天用
  • 国际化标签(fmt标签库)
  • EL函数库(fn函数库)
  • xml标签库(x标签库)
  • sql标签库(sql标签库)

使用JSTL标签步骤

  1. 导入jstl支持的jar包(标签背后隐藏的java代码)

注意:使用javaee5.0的项目自动导入jstl支持jar包

  1. 使用taglib指令导入标签库

<%@taglib uri="tld文件的uri名称" prefix="简写" %>

  1. 在jsp中使用标签

<c: out>

  • <c: out> 标签用于输出一段文本到浏览器中
属性名是否支持 EL属性类型属 性 描 述valuetrueObject指定要输出的内容escapeXmltrueBoolean指定是否将>、<、&、'、"等特殊字符进行HTML编码转换后再进行输出。默认值为truedefaulttrueObject指定如果value属性的值为null/””时所输出的默认值

<c: set> 标签

  • <c: set>标签用于把某一个对象存在指定的域范围内,或者设置Web域 中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性
属性名是否支持 EL属性类型属 性 描 述valuetrueObject用于指定属性值varfalseString用于指定要设置的Web域属性的名称scopefalseString用于指定属性所在的Web域targettrueObject用于指定要设置属性的对象,这个对象必须是JavaBean对象或java.util.Map对象propertytruestring用于指定当前要为对象设置的属性名称

<c:if>

  • <c:if test=“”>标签可以构造简单的“if-then”结构的条 件表达式
属性名是否支持 EL属性类型属 性 描 述testtrueboolean决定是否处理标签体中的内容的条件表达式varfalseString用于指定将test属性的执行结果保存到某个Web域中的某个属性的名称scopefalseString指定将test属性的执行结果保存到哪个Web域中

<c:choose> 标签

  • c:choose>标签用于指定多个条件选择的组合边界,它必须与 <c:when>和<c: otherwise>标签一起使用。使用<c: choose>, <c:when>和<c: otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page contentType="text/html;charset=gb2312" %><c:set value="${param.count}" var="count“ /><c:choose> <c:when test="${count == 0}">  对不起,没有符合您要求的记录。 </c:when> <c:otherwise>  符合您要求的记录共有${count}条. </c:otherwise></c:choose>

<c:forEach> 标签

  • <c:forEach>标签用于对一个集合对象中的元素进行循环迭代操 作,或者按指定的次数重复迭代执行标签体中的内容。
属性名是否支持 EL属性类型属 性 描 述varfalseString指定将当前迭代到的元素保存到page这个Web域中的属性名称itemstrue任何支持的类型将要迭代的集合对象varStatusfalseString指定将代表当前迭代状态信息的对象保存到page这个Web域中的属性名称begintrueint如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号;如果没有指定items属性,就从begin指定的值开始迭代,直到end值时结束迭代endtrueint参看begin属性的描述steptrueint指定迭代的步长,即迭代因子的迭代增量

<c:forTokens>

  • 对带有相同符合格式内容进行分割输出,例如varstr="1,2,3,4,5,6";
属性名是否支持 EL属性类型属 性 描 述Itemstrue任何支持的类型将要迭代的集合对象delimsfalseString字符串的分割符,可以同时有个分割符(依次写在引号内即可。)varStatusfalseString指定将代表当前迭代状态信息的对象保存到page这个Web域中的属性名称begintrueint如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号;如果没有指定items属性,就从begin指定的值开始迭代,直到end值时结束迭代endtrueint参看begin属性的描述steptrueint指定迭代的步长,即迭代因子的迭代增量varFalseString指定将当前迭代到的元素保存到page这个Web域

<c:url> 标签

  • <c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是 实现URL重写。URL重写就是将会话标识号以参数形式附加在URL 地址后面
属性名是否支持 EL属性类型属 性 描 述valuetrueString指定要构造的URL,/表示day15varfalseString指定将构造出的URL结果保存到Web域中的属性名称scopefalseString指定将构造出的URL结果保存到哪个Web域中

<c:catch> 标签

  • <c:catch>标签用于捕获嵌套在标签体中的内容抛出的 异常,其语法格式如下:<c:catch [var="varName"]> nested actions </c:catch>

<c:redirect> 标签

  • <c:redirect>标签用于将当前的访问请求转发或重定向到其他资 源,它可以根据url属性所指定的地址,执行类似<jsp:forward>这 个JSP标准标签的功能,将访问请求转发到其他资源;或执行 response.sendRedirect()方法的功能,将访问请求重定向到其他资 源。

<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>标签的最大好处。
0 0
原创粉丝点击