一:要使用C标签库,首先得在JSP页面加入:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
二:Core核心标签库
运算符:out,set,remove,catch
流程控制:if,choose,when,otherwise
循环:forEach,forTokens
URL操作:import,param,redirect,url
三:<c:out>
主要用来显示内容,就像是<%=%>一样。
如:hello!<c:out value="${username}">
//servlet页面
package com.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ChapterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setAttribute("name", "李四");
request.getRequestDispatcher("chapter2.jsp").forward(request, response);
}
}
//jsp页面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>chapter2.jsp</title>
</head>
<body>
<div>
<div>
<c:out value="${name}"></c:out>
</div>
</div>
</body>
</html>
导航:http://localhost:8080/jstl/Chapter2Servlet先导航servlet,再由servlet跳转jsp页面。
将后台servlet改为
request.setAttribute("name", "李<b>四</b>");
将前台jsp页面改为
<c:out value="${name}"></c:out>
输出结果为:李<b>四</b>
如果将前台jap改为:
<c:out value="${name}" escapeXml="false"></c:out>
输出结果:李四 (四字加粗)
可以看到escapeXml默认值为true,转换,可以设置为false,不转换,不转换页面就会解析html代码。
如果后台servlet没有值
前台:<c:out value="${name}" default="无名氏"></c:out>
输出结果:无名氏
说明当从四个范围内取不到值得时候,默认值起作用。
如果没有设置默认值,当取不到值或取到null时,则显示“”
四:<c:set/>
主要用来将变量存储在四个范围之中
此标签有五个属性:
value:要存储的值内容
var:给存储的值起变量名
scope:可以指定四个page,request,session,application范围其中之一。
target:可以指定JavaBean
property:指定JavaBean属性
语法一:
将value的值,存储在四个范围其中之一,默认为page
<c:set var="name" value="张三"/>
${name}
语法二:
将name存储在session范围中,然后在其它页面中取出查看
<c:set var="userName" value="张三" scope="session" />
<c:set var="userName" value="李四" scope="request" />
<jsp:forward page="a.jsp"></jsp:forward>
其它页面中取出
${name}可以看到取出request范围中的值
a.jsp中分别取出:
request:${requestscope.userName}
session:${sessionscope.userName}
五:<c:remove />
语法: <c:remove var="" scope=""/>
var指定变量, scope指定范围
示例:
<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
显示:
<br />
<c:out value="${pageScope.userName}" />
<br />
<c:out value="${requestScope.userName}" />
<br />
<c:out value="${sessionScope.userName}" />
<br />
<br />
移除page中的userName
<br />
<c:remove var="userName" scope="page" />
<c:out value="${pageScope.userName}" default="无名氏" />
<br />
<c:out value="${requestScope.userName}" />
<br />
<c:out value="${sessionScope.userName}" />
<br />
<br />
页面1
<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
<jsp:forward page="a.jsp"></jsp:forward>
页面2
移除request中的userName
<br />
<c:remove var="userName" scope="request" />
<br />
page:<c:out value="${pageScope.userName}" default="page无名氏"></c:out><br />
request:<c:out value="${requestScope.userName}" default="request无名氏"></c:out><br />
session:<c:out value="${sessionScope.userName}" default="session无名氏"></c:out><br />
如果不指定移除范围
<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
<br/>
<c:remove var="userName"/>
page:<c:out value="${pageScope.userName}" default="page无名氏"></c:out> <br />
request:<c:out value="${requestScope.userName}" default="request无名氏"></c:out><br />
session:<c:out value="${sessionScope.userName}" default="session无名氏"></c:out><br />
可以看到,如果不带范围的话,会删除所有范围内同名的变量.
六:<c:catch/>错误处理
示例:
<c:catch var="error_Message">
<%
int i = Integer.parseInt("a");
%>
</c:catch>
${error_Message}
分享到:
相关推荐
J2EE-8-2-第8章 JSTL.ppt
第14章 JSTL标准标签库,jsp基础知识
10.1 JSP标准标签库 10.2 核心标签库 10.3 其他JSTL标签库 10.4 使用标签文件 10.5 小 结
Java Web应用开发技术实用教程-第7章 JSTL.pptx
forEach标签可以将集合中的成员遍历一遍,通过items属性指定一个集合,var属性指明集合中的一个成员,可以通过var属性指定的变量来访问集合中的成员。 实例 爱好:${paramValues.Habit}" var="habit"> ${habit} ...
JSTL函数JSTL函数JSTL函数JSTL函数JSTL函数JSTL函数JSTL函数JSTL函数
JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签
JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>JSTL>>>
jstl-1.2.1,之前的版本需要在服务器中配置一下,而且它分成了两个jar(jstl.jar和standard.jar)还有一个tld文件,而1.2已经不用配置了,直接把javax.servlet.jsp.jstl-1.2.1.jar和javax.servlet.jsp.jstl-api-1.2.1...
jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2...
完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web...
NULL 博文链接:https://gongmingwind.iteye.com/blog/746056
jstl帮助 jstl帮助手册 jstl帮助文档
jstl,jstl实例源码jstl,jstl实例源码
jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解
jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2
综合的JSTL练习实例,JSTL表情的用法
JSTL中文帮助文档
javabean+jsp+jstl+sql server2005实现的分页 每页显示5条信息,出现页面的前后三页