JSP学习----jsp标签与jstl标签

73 篇文章 0 订阅
26 篇文章 0 订阅

JSP标签简介:

            EL表达式可以替换jsp表达式,但是EL表达式局限:不能条件判断,不能赋值,不能迭代。jsp标签替代jsp脚本,完成条件判断,赋值,迭代等功能。

            jsp标签分类:

  • JSP内置标签,又称为动作标签:不需要在jsp页面中导入标签库
  • JSTL标签库的标签:需要在jsp页面中导入标签库
  • 自定义标签:需要在jsp页面中导入标签库

动作标签

语法描述
jsp:include在页面被请求的时候引入一个文件。
jsp:useBean寻找或者实例化一个JavaBean。
jsp:setProperty设置JavaBean的属性。
jsp:getProperty输出某个JavaBean的属性。
jsp:forward把请求转到一个新的页面。
jsp:plugin根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element定义动态XML元素
jsp:attribute设置动态定义的XML元素属性。
jsp:body设置动态定义的XML元素内容。
jsp:text在JSP页面和文档中使用写入文本的模板

注意:

动态包含( <jsp:include/> 标签实现):两个JSP文件各自先翻译,然后在编译运行时再合并。也就是说途中会产生多个java文件

静态包含( @include指令实现):两个文件先合并,然后一并翻译成java源文件,过程中只产生1个java文件。

 

JSTL标签

         JSTL,Java Strandard Tag Libarary  java标准标签库 

         特点:使用jstl标签库时,需要在jsp页面中导入标签库

         JSTL 库安装

         JSTL标签库分类:

  • 核心标签库 (c: 设置变量,获取变量,条件判断,循环  )(主要)
  • 国际化标签库  (fmt: 日期国家化,文字国际化,数字国际化  )(以后说)
  • EL函数库  ( fn:对String常用的方法 )
  • 数据库标签库 (sql:对数据库操作的标签)
  • XML标签库( x:对xml文件操作的标签 )

使用JSTL标签

  • 如果是用java5.0的jar包,那么就已经包含jstl的jar包。
  • 自己手动导入则在jsp页面头部导入标签库:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

JSTL核心标签库的标签

标签描述
<c:out>用于在JSP中显示数据,就像<%= ... >
<c:set>用于保存数据
<c:remove>用于删除数据
<c:catch>用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当做<c:when>和<c:otherwise>的父标签
<c:when><c:choose>的子标签,用来判断条件是否成立
<c:otherwise><c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>基础迭代标签,接受多种集合类型
<c:forTokens>根据指定的分隔符来分隔内容并迭代输出
<c:param>用来给包含或重定向的页面传递参数
<c:redirect>重定向至一个新的URL.
<c:url>使用可选的查询参数来创造一个URL

常用标签使用:

<body>
  <%--使用set标签设置数据,默认是在pageContext域中设置,也可以指定域保存 --%>
     <c:set var="name" value="eric" scope="request"></c:set>
         ${requestScope.name}
         
 <%-- out标签,从域对象中得到数据,
         default属性:设置默认值,当属性为null时,就会用默认值代替
         escapeXml:是否对内容进行转义,false:不进行转义,true:进行转义
         什么是转义:特殊字符不会被识别作用,当普通字符输出
         --%>
     <c:out value="${name}" default="abc" escapeXml="false"></c:out>
     
 <%--if标签:单条间判断--%>
     <c:if test="${1>2}">
            条件成立执行的内容
     </c:if>
     
 <%--choose标签:多条件判断 --%>
     <c:set var="id" value="001"></c:set>
     <c:choose>
         <c:when test="${id=002}">此用户是002</c:when>
         <c:when test="${id=001}">此用户是001</c:when>
         <c:otherwise>不存在此用户</c:otherwise>
     </c:choose>
     
     <%--遍历List
         begin:从哪个元素开始遍历,第一个下标为0
         end:到哪个元素结束
         step:步长
         items:需要遍历的对象的名称
         var:每个元素对象的名称
         varStatus:当前遍历对象的状态,即:已经遍历了几个元素。
      --%>
      <c:forEach items="${list}" var="student" varStatus="varSta">
          序号${varSta.count}-姓名${student.name}-年龄${student.age}
      </c:forEach>
      
      <%--遍历Map--%>
      <c:forEach items="${map}" var="entry" varStatus="varSta">
          序号${varSta.count}-编号${entry.key}-姓名${entry.value.name}     
      </c:forEach>      
          
      <%--forTokens便签 :循环字符串,可以切割后将子串都输出 
          items:要循环的对象
          delims:以什么东西切割字符串
          var:切割后的单个对象的名称
      --%>
          <c:forTokens items="${str}" delims="-" var="s">
              ${s} <br/>
          </c:forTokens>
          
          <%--重定向 标签--%>
          <c:redirect url="http://www.baidu.com"></c:redirect>
              
  </body>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值