JSTL使用方法

48 篇文章 4 订阅

What

      JSTL:JSP Standard Tag Library的缩写,即JSP标准标签库,是sun的一套标准

When

      .jsp页面上使用

Why

  • 因为.jsp页面主要用于显示的,最好不要写java代码<%%>,如果不用JSTL就得写java代码,方便简洁,代码量少
  • 前端美工人员可能对java代码不太了解,不易于调页面
  • 不必应用各种库了(比如接收的是个一个servlet类传过来的参数,就不用引用该servlet类了,但是如果不用JSTL就的引用该类)

How

      JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

1.添加相应的jar包
这里写图片描述

2.在.jsp中采用taglib指令引入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="fmt"%>   
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>    

      taglib指定是定义了一个标签库以及自定义标签的前缀,
3.标签的使用

      核心标签

<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

格式化标签

<fmt:formatNumber>  使用指定的格式或精度格式化数字
<fmt:parseNumber>   解析一个代表着数字,货币或百分比的字符串
<fmt:formatDate>    使用指定的风格或模式格式化日期和时间
<fmt:parseDate>     解析一个代表着日期或时间的字符串

JSTL函数

fn:length()     返回字符串长度
fn:split()  将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回

具体使用方法:http://www.runoob.com/jsp/jsp-jstl.html

4.表达式语言EL
      EL(Expression Language的缩写)提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化,可代替传统的<%="..."%>形式的Java表达式。语法结构:${expression}

      表达式:${1+1}输出为2
            算数运算符还有:-,*,/,div,%,mod
            关系运算符==,eq,!=,lt,gt
            逻辑运算符:and,or,not
            empty运算符:${empty var},如果变量var为null,就返回true
      访问对象${user[“name”]}或${user.name},user对象必须有get方法
      访问数组:${users[0]}表示访问users数组中的第一个元素
      隐含对象:EL语言定义了11个隐含对象,他们都是java.util.Map类型
      EL自定义函数

        在WEB-INF下,添加.tld文件

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">

  <description>my functions library</description>
  <display-name>my functions</display-name>
  <tlib-version>1.0</tlib-version>
  <short-name>my</short-name>
  <uri>http://www.tianfujiyun.com/myfunctions</uri>

  <function>
    <name>say</name>
    <function-class>com.bjpowernode.jstl.MyFunctions</function-class>
    <function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
  </function>

</taglib>

        .java文件

public class MyFunctions {

    /**
     * 必须为静态全局的
     * @param username
     * @return
     */
    public static String sayHello(String username) {
        return "Hello " + username;
    }
}

        .jsp页面调用

//引用
<%@ taglib uri="http://www.bjpowernode.com/myfunctions" prefix="my" %>
...
自定义函数:${my:say("张三") }
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值