JSTL技术

1.JSTL概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

标签库标签库的URI前缀
Corehttp://java.sun.com/jsp/jstl/corec
I18Nhttp://java.sun.com/jsp/jstl/fmtfmt
SQLhttp://java.sun.com/jsp/jstl/sqlsql
XMLhttp://java.sun.com/jsp/jstl/xmlx
Functionshttp://java.sun.com/jsp/jstl/functionsfn

2.JSTL导入

需要导两个包:

jstl.jar
standar.jar

使用jsp的taglib指令导入核心标签库

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

3.JSTL核心库的常用标签

1)<c:if test=””>标签
其中test是返回boolean的条件
2)<c:forEach>标签
使用方式有两种组合形式:
示例:

1)遍历List的值

2)遍历List的值

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

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

5)遍历Map<User,Map<String,User>>的值
entry.key-----User
entry.value------List<String,User>

//forEach.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="beyond.domain.*" %>
<!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><%//模拟List<String> strListList<String> strList = new ArrayList<String>();strList.add("beyond0");strList.add("beyond1");strList.add("beyond2");strList.add("beyond3");request.setAttribute("wsq", strList);//遍历List<User>的值List<User> userList = new ArrayList<User>();User user1 = new User();//list集合中的第一个元素user1.setId(2);user1.setName("qibao");user1.setPassword("wsq");userList.add(user1);//list集合中的第二个元素User user2 = new User();user2.setId(3);user2.setName("yanyu");user2.setPassword("wsq");userList.add(user2);application.setAttribute("qb", userList);//遍历Map<String,String>的值Map<String,String> strMap = new HashMap<String,String>();strMap.put("name", "hjj");strMap.put("age", "32");strMap.put("addr", "香港");strMap.put("email", "hjj@qq.com");session.setAttribute("strMap", strMap);//遍历Map<String,User>的值Map<String,User> userMap = new HashMap<String,User>();userMap.put("user1", user1);userMap.put("user2", user2);session.setAttribute("userMap", userMap);		/* //遍历Map<User,Map<String,User>>的值Map<User,Map<String,User>> mapMap = new HashMap<User,Map<String,User>>();mapMap.put(user1,userMap);mapMap.put(user2,userMap);session.setAttribute("mapMap", mapMap);	 */%><h1>取出strList的数据</h1><c:forEach items="${wsq}" var="str">${str}<br/></c:forEach><h1>取出userList的数据</h1><c:forEach items="${qb}" var="user" >user的name:${user.name}------------user的password:${user.password} <br/></c:forEach><h1>取出strMap的数据</h1><c:forEach items="${strMap}" var="entry">${entry.key}---------------${entry.value}<br/></c:forEach><h1>取出userMap的数据</h1><c:forEach items="${userMap}" var="entry" >${entry.key}--------------${entry.value.id}--------------${entry.value.name}--------------${entry.value.password}<br/></c:forEach><%-- <h1>取出mapMap的数据</h1><c:forEach items="${mapMap}" var="enter">${entry.key.key}--------------${entry.value.value.id}--------------${entry.value.name}--------------${entry.value.password}<br/></c:forEach> --%></body>
</html>
//userLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import= "beyond.domain.*" %>
<!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 user = new User();user.setId(1014);user.setName("wsq");user.setPassword("wsq");session.setAttribute("user", user);/* 把user放到session域当中 */%>
</body>
</html>
//jstl.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!-- 通过taglib导入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><!-- jstl标签经常会和el表达式(从域中取东西)配合使用 --><%request.setAttribute("count", 1014);%><c:if test="${count==1014}">nice you are right!!</c:if><!-- test代表的是一个返回boolean的表达式条件,要么是true要么是false,如果是true进入if标签内部,但是,注意这里没有else标签!!! --><c:if test="1==1">beyond</c:if><c:if test="1!=1">sq</c:if><!-- 第一种组合方式 --><!-- forEach模拟for(int i=0;i<=5;i++){System.out.println(i);} --><c:forEach begin="0" end="5" var="i">${i}<br/></c:forEach><!-- 也就是从0开始到5结束每次将值赋值给i然后通过el表达式输出i的值,每输出一个就换行 --><!-- 第二种组合方式 --><!-- forEach模拟增强for循环 	productList----List<Product>for(Product product : productList){}System.out.println(product.getPname());--><!-- items:是一个集合或者数组   var:代表集合中的某一个元素 --><c:forEach items="${productList}" var="pro">${pro.pname}</c:forEach></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asinh函数_JavaScript中带有示例的Math.asinh()方法

asinh函数JavaScript | Math.asinh()方法 (JavaScript | Math.asinh() Method) Math.asinh() is a function in math library of JavaScript that is used to find the value of hyperbolic arc-sine of a number. Math.asinh()是JavaScript数学库中的函数&#xff0c;用于查找…

使用PHP创建一个REST API(Create a REST API with PHP)

译者前言&#xff1a; 首先这是一篇国外的英文文章&#xff0c;非常系统、详尽的介绍了如何使用PHP创建REST API&#xff0c;国内这方面的资料非常非常的有限&#xff0c;而且基本没有可操作性。这篇文章写的非常好&#xff0c;只要对PHP稍有了解的程序员&#xff0c;看完本文基…

old-

大数问题:求用一段C或C程序写求 f(x)100! 的完整程序大数问题&#xff0c; 我用数组作的&#xff0c;输出格式应该是是222,222,222 #include "stdafx.h" #include<stdio.h> #include<stdlib.h> int a[1000]{0}; in…

javaEE的开发模式

1&#xff0e;什么是模式 模式在开发过程中总结出的“套路”&#xff0c;总结出的一套约定俗成的设计模式 2&#xff0e;javaEE经历的模式 model1模式&#xff1a; 技术组成&#xff1a;jspjavaBean model1的弊端&#xff1a;随着业务复杂性 导致jsp页面比较混乱 model2模式…

Linux内核设计与实现---kobject sysfs

kobject sysfs1 kobject2 ktype3 kset4 subsystem5 别混淆了这些结构体6 管理和操作kobject7 引用计数kref8 sysfssysfs中添加和删除kobject向sysfs添加文件9 内核事件层2.6内核增加了一个引人注目的新特性—同一设备模型。设备模型提供了独立的机制专门表示设备&#xff0c;并…

开发Windows Mobile今日插件 -- 内存电量,桌面便笺,桌面记单词

本篇文章讲解的是开发 Windows Mobile 上的今日插件。关于是今日插件&#xff0c;在 PPC 或者 SP SDK 的帮助文档中有相关的章节介绍&#xff0c;在网络上也有一些帖子和资源讲解。在这里简要回顾一下。今日插件就是在windows mobile的桌面上显示的条目&#xff0c;例如系统提供…

c语言中将函数指针作为形参_在C中将有效指针作为NULL指针

c语言中将函数指针作为形参Prerequisite: An Example of Null pointer in C 先决条件&#xff1a; C中的空指针示例 Any pointer that contains a valid memory address can be made as a NULL pointer by assigning 0. 通过分配0&#xff0c;可以将包含有效内存地址的任何指…

[转]一个清华计算机博士生的退学申请

偶然间在网上看到这篇帖子&#xff0c;回想起自己的求学经历&#xff0c;思索良久。。。 本想找到原帖及作者&#xff0c;但是几经搜索&#xff0c;发现原帖出自科学网&#xff0c;已被删除。对此&#xff0c;我还能说啥&#xff1f;&#xff01; http://www.sciencenet.cn/m/u…

算法---递归

递归结题三部曲 何为递归&#xff1f;程序反复调用自身即是递归。 我自己在刚开始解决递归问题的时候&#xff0c;总是会去纠结这一层函数做了什么&#xff0c;它调用自身后的下一层函数又做了什么…然后就会觉得实现一个递归解法十分复杂&#xff0c;根本就无从下手。 相信…

给定条件找最小值c语言程序_根据给定条件最小化n的最小步骤

给定条件找最小值c语言程序Problem statement: 问题陈述&#xff1a; Given a number n, count minimum steps to minimize it to 1 performing the following operations: 给定数字n &#xff0c;执行以下操作&#xff0c;计算最少的步骤以将其最小化为1&#xff1a; Operat…

提高C#编程水平不可不读的50个要诀

提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间&#xff0c;优先使用 readonly 3.在 as 和 强制类型转换之间&#xff0c;优先使用 as 操作符 4.使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if 5.总是…

那个年代的苏联歌曲

小时候&#xff0c;不时听父亲提起电影《这里的黎明静悄悄》&#xff0c;怎么也想不到如此美丽的名字为什么要和战争联系起来。后来在大学看了这部电影之后&#xff0c;开始认为这名字是合适的&#xff0c;因为电影讲的是女性——战场中的女性&#xff0c;各自都怀揣着爱情去保…

linux系统编程---进程总结

进程控制总结1 进程创建的三种方式forkvfrokclone2 进程终止进程正常退出returnexit_exit进程异常退出进程收到某个信号&#xff0c;而该信号使进程终止abort3 进程等待进程等待的方法waitwaitpid4 进程替换替换原理替换函数制作一个简单的shell1 进程创建的三种方式 参考文章…

银行账务转账系统(事务处理)

流程如下&#xff1a; 创建项目工程如下&#xff1a; transfer包下的代码如下&#xff1a; package beyond.transfer.dao;import java.sql.Connection; import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;import beyond.utils.DataSourceUtils;pu…

【msdn wpf forum翻译】TextBox中文本 中对齐 的方法

原文链接&#xff1a;http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/49864e35-1dbf-4292-a361-93f1a8400558问题&#xff1a;TextBox中文本中对齐&#xff0c;使用 TextBox.HorizontalContentAlignment"Center"行不通&#xff08;TextBox.VerticalConte…

wifi操作及实例

1.什么事WIFI 利用无线路由器上网的协议2.获取WIFI网卡的状态 WIFI网卡的状态是由一系列的整形常量来表示的 有状态&#xff1a; 网卡不可用WIFI_STATE_DISABLED 对应值为1 网卡正在关闭WIFI_STATE_DISABLING 对应值为0 网卡可用WIFI_STATE_ENABLED 对应的值为3 …

c语言 函数的参数传递示例_C语言中带有示例的remove()函数

c语言 函数的参数传递示例C语言中的remove()函数 (remove() function in C) The remove() function is defined in the <stdio.h> header file. remove()函数在<stdio.h>头文件中定义。 Prototype: 原型&#xff1a; int remove(const char* filename);Parameter…

使用ThreadLocal绑定连接资源(事务)

dao层代码如下&#xff1a; package beyond.transfer.dao;import java.sql.Connection; import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;import beyond.utils.DataSourceUtils; import beyond.utils.MyDataSourceUtils;public class TransferDa…

算法---栈和队列

栈和队列1 栈栈的顺序存储栈的链式存储2 队列队列的顺序存储队列的链式存储3 栈和队列的应用用栈实现队列用队列实现栈最小栈1 栈 参考文章&#xff1a; https://zhuanlan.zhihu.com/p/346164833 https://zhuanlan.zhihu.com/p/120965372#:~:text%E6%A0%88%E6%98%AF%E4%B8%80%…

学习网站LIST

面向对象的脚本语言Rubyhttp://rubycn.ce-lab.net/20020101.htmlRUBY文档中心http://www.moer.net/ruby/doc/TCL脚本http://www.tclchina.com/Python快速入门http://wiki.woodpecker.org.cn/moin/WeiZhong/2006-01-17Python 研究(Dive Into Python)http://www.woodpecker.org.c…