今天上午学习了jstl的if标签和forEach标签(其它标签用的很少,所以没讲,只讲了这两个标签),然后通过代码练习了一下,现在总结。

  首先导入包,从Apache的网站下载JSTL的JAR包。进入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。 其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于 实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD),将两个jar包导入我们工程的lib中

然后使用jsp的taglib指令导入核心标签库(prefix是前缀)。

  if标签:if标签由名字可以想到,它是判断标记,如果是true,则进入执行该标签语句,否则不执行。遗憾的是jstl并没有给我提供else的标签,所以我们只能写两个if标签作为判断

   if标签的格式:<c:if test="">xxxx</c:if> 如果test内容返回的是一个true,则向页面输出xxx,否则不执行。一般test内容为表达式,由于解析的问题,所以我们用el表达式。

例子:   

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:if test="${1==1}">
正确
</c:if>
<c:if test="${1!=1}">
错误
</c:if>
</body>
</html>

运行结果:

   if标签的应用:一般应用在登录界面,如果你没登录就显示请登录、请注册,否则就显示你的用户名。比如天猫界面,这是未登录的:,登录的:,该实例在下篇博客。

forEach:和java代码里的for循环相似,它有属性begin,end,从名字可以开出,该循环从begin开始,到end结束。

  实例:                            运行结果:

                              

  因为forEach标签只是用来在jsp循环,不能从域取数据,而el可以在域中取数据,所以我们经常将二者一块用,能很方便的从域中取东西。

示例:

1)遍历List<String>的值

2)遍历List<User>的值

3)遍历Map<String,String>的值

4)遍历Map<String,User>的值

5)遍历Map<User,Map<String,User>>的值

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bin.User"%>
<%@ page import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 模拟for循环语句输出i值
for(int i=0;i<=5;i++){
System.out.println(i);
}
-->
<c:forEach begin="0" end="5" var="i">
${i}<br>
</c:forEach>
<%
//遍历List<String>的值
List<String> l1 = new ArrayList<String>();
l1.add("zhangbaiyi");
l1.add("guqianwan");
l1.add("yangyimao");
application.setAttribute("l1", l1);
//遍历List<User>的值
User user1 = new User();
user1.setUsername("zhangsan");
user1.setPassword("123");
User user2 = new User();
user2.setUsername("lisi");
user2.setPassword("123");
User user3 = new User();
user3.setUsername("wangwu");
user3.setPassword("123");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
application.setAttribute("list", list);
//遍历Map<String,String>的值
Map<String,String> Map = new HashMap<String,String>();
Map.put("name","zhangsan");
Map.put("sex","male");
Map.put("old","20");
Map.put("minzu","han");
application.setAttribute("Map", Map);
//遍历Map<String,User>的值
Map<String,User> userMap = new HashMap<String,User>();
userMap.put("user1",user1);
userMap.put("user2", user2);
userMap.put("user3",user3);
application.setAttribute("userMap", userMap);
//遍历Map<User,Map<String,User>>的值
Map<User,Map<String,User>> UserMap = new HashMap<User,Map<String,User>>();
UserMap.putIfAbsent(user1,userMap);
UserMap.putIfAbsent(user2,userMap);
UserMap.putIfAbsent(user3,userMap);
application.setAttribute("UserMap",UserMap);
%>
<hr>
<c:forEach items="${l1}" var="str">
${str}<br>
</c:forEach>
<hr>
<c:forEach items="${list}" var="user">
${user.username}--------${user.password}<br>
</c:forEach>
<hr>
<c:forEach items="${Map}" var="entry">
${entry.key}------${entry.value}<br>
</c:forEach>
<hr>
<c:forEach items="${userMap}" var="entry">
${entry.key}------${entry.value.username}------${entry.value.password}<br>
</c:forEach> <hr>
<c:forEach items="${UserMap}" var="UserMap">
用户名:${UserMap.key.username}-----密码:${UserMap.key.password}<br>
<c:forEach items="${UserMap.value}" var="userMap">
用户:${userMap.key}-----用户名:${userMap.value.username}------密码:${userMap.value.password}<br>
</c:forEach> </c:forEach>
</body>
</html>

运行结果:

总结:if和forEach语句很好掌握,当一定要敲,刚学完觉得很简单,但是实践就会出现问题,让问题浮出水面,然后解决!每天学习一点java,每天进一步!

如果有大佬发现错误,请留言指出,感谢,向您学习

    

jstl的if标签和forEach标签的解析的更多相关文章

  1. dedecms的if标签、foreach标签

    1.if标签 (1)下拉列表 <select name="prize_type[]" class="type J-prize-type" id=" ...

  2. mybatis中sql标签、where标签、foreach标签用法

    <sql id="query_user_where"> <!-- 如果 userQueryVo中传入查询条件,再进行sql拼接--> <!-- tes ...

  3. JSTL中forEach标签应用示例【转】【补】

    forEach样例 <%@ page language="java" import="java.util.*" pageEncoding="ut ...

  4. jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

  5. (二十七)JSP标签之核心标签

    一.诞生 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码. 二.JSTL 分类 核心标签(用得最多) ...

  6. jstl foreach标签

    forEach标签 forEach标签用来循环. 属性: * var :定义循环变量 * begin :从哪开始 * end :到哪结束 * step :递增 * items :遍历的内容 * var ...

  7. jstl 中<c:forEach />标签

    <c:forEach>标签有如下属性: 属性 描述 是否必要 默认值 items 要被循环的信息 否 无 begin 开始的元素(0=第一个元素,1=第二个元素) 否 0 end 最后一个 ...

  8. JSTL的c:forEach标签(${status.index})

    <c:forEach>标签具有以下一些属性: var:迭代参数的名称.在迭代体中可以使用的变量的名称,用来表示每一个迭代变量.类型为String. items:要进行迭代的集合.对于它所支 ...

  9. 详解JSTL的forEach标签

    详解JSTL的forEach标签 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍.      <c:forEach> 标签的语法 说明 : 语法:迭代一集合对象之所有 ...

随机推荐

  1. Mysql数据库中条件查询

    1.concat(字符串拼接) 作用:将选中的列进行拼接  写法 AS的作用就是属性名 SELECT CONCAT(ename,job) AS 你猜 FROM emp; 2.条件查询 语法: sele ...

  2. Ubuntu系统下容器化部署gitlab

    容器化部署gitlab 获取镜像文件 1. 下载镜像文件 docker pull beginor/gitlab-ce:-ce. 2. 创建GitLab 的配置 (etc) . 日志 (log) .数据 ...

  3. 《JavaEE开发的颠覆者——Spring Boot实战》是一本好书

    这本书的风格非常好.每一节都是先点明这一块知识的要点,随后就手把手的做出一个最简明.但有能体现核心的实例(大多只有几个Class) 这样的书用来熟悉一门框架,实在是再好不过.

  4. Mybatis 复习

    概述 mybatis 是一个用java编写的持久层框架, 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程,它使用了ORM思想实现了结果 集的封 ...

  5. Microsoft SQL Server数据库语法

    目录   关于数据库的语法: 1.创建数据库 create database 数据库名on primary(主文件属性(name,filename,size等)) -用逗号隔开次要主要文件和次要文件( ...

  6. [摘录] 当页[ModalRoute.of(context)]路由属性详解

    ModalRoute.of(context) API可以获取当前路由对象,通过它我们可以获取关于当前页面的所有属性: 属性: isActive 当前路由是都位于navigator中:如果该路由acti ...

  7. Microsoft SQL Server 2012安装说明

    Microsoft SQL Server 2012安装说明 环境:Windows8, Windows7, WinVista, Win2003, WinXP Microsoft SQL Server 2 ...

  8. JanusGraph安装graphexp

    准备:JanusGraph环境,graphexp源码,nginx 本文采用的环境:JanusGraph + cassandra + ES + GraphExp(cassandra 或者HBase作为后 ...

  9. iscroll.js的简单使用方法

    参考链接:https://www.cnblogs.com/Renyi-Fan/tag/js%E6%8F%92%E4%BB%B6/default.html?page=2 目录 一.总结 一句话总结:Sc ...

  10. 高小兰 201671010414 实验十四 团队项目评审&课程学习总结

    项目 内容 软件工程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/sunmiaokun/p/11095027.ht ...