第六章JSP标准标签库JSTL(1)
来源:互联网 发布:2017网络红歌在线试听 编辑:程序博客网 时间:2024/06/08 02:41
核心标签库
<c:out> 文本输出
<c:set><c:remove> 设置、删除 属性值
<c:catch> 异常捕获
<c:if> 和<c:choose><c:when><c:otherwise> 条件选择
<c:forEach><c:forToken> 循环迭代
掌握标签的属性用法:
属性名
属性的作用
属性值的类型
属性值是否支持el表达式
【ElTestSerlet.java】
package com.rupeng.web3;import java.io.IOException;import java.util.LinkedList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ELTest1Servlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{req.setAttribute("age", 50); req.setAttribute("name", "hello a>b<c>d"); //escapeXml属性默认为true使特殊字符转义输出Person p1 = new Person();p1.setId(5);p1.setName("tom");p1.setAge(50);Person p2 = new Person();p2.setId(6);p2.setName("jerry");p2.setAge(15);List<Person> list = new LinkedList<Person>();list.add(p1);list.add(p2);req.setAttribute("persons", list);req.getRequestDispatcher("/ElTest1.jsp").forward(req, resp);}}
【然后配置web.xml】
【注意】uri="http://java.sun.com/jsp/jstl/core"
【核心标签库 <c:out>】
l <c:out> 输出一段文本内容到pageContext对象当前保存的“out”对象中
l <c:out>的属性
属性名
是否支持EL表达式
属性值类型
属性说明
value
true
Object
用来指定要输出的内容
escapeXml
true
Boolean
true:对特殊字符进行转义
default
true
Object
默认值,当value为null时输出
对应的主要Java代码
out.print(obj);
和${name}的区别是<c:out>支持escapeXml,对于可能有特殊字符的要用<c:out>
【核心标签库 <c:forEach>】
循环迭代标签可以迭代的对象:Collection、Map、Iterator、Enmuration、String、ResultSet
属性名
是否支持EL
属性类型
属性说明
items
true
集合等
将要迭代的集合对象
var
false
String
代表当前迭代到的元素,并存入page中
begin
true
int
迭代开始的索引位置
end
true
int
迭代结束的索引位置
step
true
int
迭代增量,也成为步长
varStatus
false
String
为迭代状态对象命名,并放在page中
【ElTest1.jsp】
<pre name="code" class="html"><%@ 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><c:out value="${name}" ></c:out><p>${name }</p><p><c:out value="${nickname}" default="${age}"/></p> //没有值时候默认输出default<p><c:out value="${requestScope.age}" /></p><table><tr><td>id</td><td>name</td><td>age</td></tr><c:forEach items="${persons}" var="p"><tr style="color:${p.age gt 18?'red':'black' }"><td>${p.id }</td><td>${p.name }</td><td>${p.age }</td></tr></c:forEach></table></body></html>
实际上一般不在jsp中储存数据
【核心标签库 <c:set>(*)】
把数据存放到web域、Map、JavaBean中
属性名
是否支持EL表达式
属性值类型
属性说明
value
true
Object
需要设置的变量的值
var
false
String
需要设置的变量的名称
scope
false
String
变量所放置的范围对象:page、request、session、application,和var配合使用
target
true
Object
指定在JavaBean或Map中的变量,和property配合使用
property
true
String
指定JavaBean的字段名或者Map的key。不能xx.xxx这样多段的
1)scope var是一对,用来在scope范围中设定名字为var的值;
2)target property是一对,是用来在通过target的EL表达式获取的对象中设置属性名为property的值。
【核心标签库 <c:remove> (*)】
l <c:remove>标签用于删除各种Web域中的属性。
其语法格式如下:
<c:remove var="varName"
属性名
支持EL表达式
属性值类型
属性说明
var
false
String
需要删除的变量的名称
scope
false
String
变量所属的范围对象:page、request、session、application,和var配合使用
【核心标签库 <c:catch> (*)】知道即可
l 用于捕获异常,仅仅是捕获,并不做处理。如果指定var属性,则会把异常对象存入page对象中
属性列表
属性名
是否支持EL表达式
属性类型
属性说明
var
false
String
指定在page中的变量名
注意点
由于JSP有错误页面机制,所以一些关键的错误异常还是要跳转到错误页面,那些次要的异常可以使用此标签捕获
【ELTest2】
<pre name="code" class="html"><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@page import="com.rupeng.web3.Person"%><%@page import="java.util.HashMap"%><%@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><c:set scope="request" var="name" value="rupeng"></c:set><c:set scope="session" var="name" value="baidu"></c:set><%Person p1 = new Person();request.setAttribute("p",p1);HashMap<String,String> map = new HashMap();session.setAttribute("map1",map);%>${requestScope.name }<br/>${sessionScope.name }<br/><c:set target="${requestScope.p}" property="name" value="yzk"/>${p.name}<br/><c:set target="${map1}" property="tom" value="123"/><p>${sessionScope.map1.tom}</p><p>${name}</p><c:remove var="name" scope="request"/><p>${name}</p><c:catch var="ex"><%String s = request.getParameter("name");s.toString();%></c:catch>异常对象:<c:out value="${pageScope.ex}"></c:out>异常堆栈:<c:out value="${ex.stackTrace}"></c:out></body></html>
- 第六章JSP标准标签库JSTL(1)
- 第六章JSP标准标签库JSTL(2)
- jstl标签(jsp标准标签库)
- JSP - JSTL(JSP标准标签库)
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- Java-JSTL(JSP标准标签库)
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- Java-JSTL(JSP标准标签库)
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)介绍
- JSTL(JSP标准标签库)
- JSTL(JSP标准标签库)介绍
- JSTL(jsp标准标签库)介绍
- MySQL学习笔记第10课(共10课)
- sql l连接
- POJ 1013 Counterfeit Dollar 砝码称重
- IBatis批量处理那些事
- 使用mach-smdk6410.c制作内核刷入显示乱码解决方法
- 第六章JSP标准标签库JSTL(1)
- 如何将VS 2015中的项目上传到github
- POJ 1328 Radar Installation 贪心最少区间问题
- connect 端口分配源码分析
- 页面内容超出范围解决方法
- 关于分布式存储
- SSH常用参数
- SQL常用语句
- NOIP圣水题之——三连击