JSTL是java提供的JSP标签库

1,在项目中加入 jsf-api.jar jsf-impl.jar jstl-1.2.jar 三个包

2, 如何在jsp页面引入标签库

使用 <@taglib>标签,prefix=""uri=""属性值怎么找呢?

用jstl举例说明
打开jstl-1.2.jar包,在META-INF中找 tld文件
这里选择 c.tld
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
这两个标签分别对应prefix和uri

2,第一个简单的JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!-- 以后不要出现下面这种形式的代码 -->
    <% request.setAttribute("username","zhangsan"); %>
    <!-- 可以有下面这种形式 -->
    <%=request.getContextPath() %><br/>
    <%-- ${XXX}是EL表达式--%>
    ${username}<br/> <!-- getAttribute()的值,依次找 pageContetx,request,session,application,找不到也不报错 -->
    ${param.username } <br/><!-- 输出页面传递过来的参数值 -->
    <!-- JSTL标签形式的一种输出,用的很少 -->
    <c:out value="${username}" ></c:out>
</body>
</html>

页面访问:

http://localhost:8080/Jstl01/01.jsp?username=awei

显示结果是:

/Jstl01
zhangsan
awei 

较为深入的探讨JSTL常用的标签

User对象有两个属性  name  age
      /**          * servlet中的代码片段         * 当我们将jsp页面放到WEB-INF下面时,用户就不能直接访问,这是给我们程序内部跳转用的       */        request.setAttribute("user",new User("zhangsan",12));
        List<User> users=new ArrayList<User>();
        users.add(new User("lisi",34));
        users.add(new User("wangwu",14));
        users.add(new User("zhaoliu",24));
        request.setAttribute("users",users);
        request.getRequestDispatcher("/WEB-INF/01/hello.jsp").forward(request,response);

jsp页面中JSTL用法

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    ${user.name }----${user.age}
    <c:if test="${empty user }"> user is not exists</c:if>
    <c:if test="${not empty user }"> user is exists</c:if>
    <!-- 建议使用实体符号作判断,不要使用>=<这样的形式 -->
    <c:if test="${user.age ge 18 }"> 成年了</c:if>
    <!-- jstl与mybatis相似,没有else,用choose when替代 -->
    <c:choose>
        <c:when test="${user.age lt 18 }"> 未成年</c:when>
        <c:when test="${user.age eq 18 }"> 刚成年</c:when>
        <c:otherwise>已成年</c:otherwise>
    </c:choose>

    <!-- 迭代forEach, items集合,var当前迭代的对象,varStatus是一个对象,它有一个非常常用的属性index -->
    <c:forEach items="users" var="user" varStatus="s">
        ${user.name}----${user.age }----${s.index }
    </c:forEach>
</body>
</html>

jstl-初步认知的更多相关文章

  1. JAVA8 in Action:行为参数化,匿名类及lambda表达式的初步认知实例整理

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  2. C++ STL 的初步认知

    学无止境!!!    尊重他人劳动,尊重出处:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html 我已经做了4年的MFC ...

  3. 【Java学习笔记之二十五】初步认知Java内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  4. Servlet初步认知

    1 背景概述 在近期的公司项目开发的过程中,笔者初步学习Servlet的开发.配置与使用,本文主要介绍了Servlet的相关概念以及优势说明并附上笔者开发简单样例.今天将笔者学习的心得总结出来与大家分 ...

  5. 初步认知java的方法

    1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的 ...

  6. Java网络通信初步认知

    本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...

  7. 【Swing】Swing初步认知

    AWT(abstract Window Toolkit) AWT是java发布的第一个图形界面库.AWT通过调用系统本地的库,来创建和显示控件. AWT 的组件都是使用的native code来编写的 ...

  8. 初步认知MySQL metadata lock(MDL)

    http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...

  9. MYSQL存储过程初步认知

    存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...

  10. 初步认知jQuery

    jQuery:是JavaScript的一个类库全写JavaScript query   write less do more JavaScript查询写的更少做的更多 第一步先导入js文件: < ...

随机推荐

  1. WebApp开发总结

    WebApp开发总结 框架的使用网络上都有教程,就不写了,主要记录下个人的开发总结以方便以后开发注意. css公用样式统一定义 css样式抽出复用 appearance: none; 取消系统默认样式 ...

  2. 你所不知道的 CSS 动画技巧与细节

    怕标题起的有点大,下述技巧如果你已经掌握了看看就好,欢迎斧正,本文希望通过介绍一些 CSS 不太常用的技巧,辅以一些实践,让读者可以更加深入的理解掌握 CSS 动画. 废话少说,直接进入正题,本文提到 ...

  3. Http2改造实践:statusText丢失问题

    背景: 1.项目中的nginx由http1.1改造为http2, 2.代码中采用axios的interceptors做统一返回处理,对于系统逻辑性错误弹窗(例如:表单字段唯一性校验弹窗提示) 现象: ...

  4. 聊聊GIS中那些坐标系

    从第一次上地图学的课开始,对GIS最基本的地图坐标系统就很迷.也难怪,我那时候并不是GIS专业的学生,仅仅是一门开卷考试的专业选修课,就没怎么在意. 等我真正接触到了各种空间数据产品,我才知道万里长征 ...

  5. PyQt:昨天今天明天表示方法

    PyQt中今天的表示方法如下: QtCore.QDate.currentDate() 那么,明天怎么表示呢? today=QtCore.QDate.currentDate().toJulianDay( ...

  6. Spring AOP术语解释

    话说,越来越感觉有些人解释概念真的是晦涩难懂,我刚开始学习Spring aop时,对那些切入点,连接点,引入等概念搞得头疼.太多人就直接照搬定义,让我们这些初学者如何理解啊.下面是我找了大量的博客,终 ...

  7. jQuery菜单示例(全选,反选,取消)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. C# 匿名对象(匿名类型)、var、动态类型 dynamic

    本文是要写的下篇<C#反射及优化用法>的前奏,不能算是下一篇文章的基础的基础吧,有兴趣的朋友可以关注一下. 随着C#的发展,该语音内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑. ...

  9. Linq--一个集合中查找另一个集合,需熟悉这种写法

    //获取科室与病区授权的护士信息        public List<SYS_ZGKSBQDYK> GetUserWardMapByWardCode(string wardCode)   ...

  10. Maven(一)初识Maven

    前言 在这之前一直都有去看关于Maven的相关介绍,但是没有到真正要用的时候,自己总是以为懂了.其实真的感觉Maven并没有想象的那么简单! 那我们该怎么去学习maven呢?接下来我将从: 初步认识m ...