----------------------------------------- JSTL标签概述和out和set标签的用法----------------------------------------------
JSTL
1 JSTL概述
- 什么是JSTL
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。既然是第三方的东西,那么就需要导包。但是如果你使用的是MyEclipse,那么MyEclipse会帮你导包的。
2 导入标签库
导入标签库需要使用taglib指令!
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/functions" %>
这东西不用去背,可以把光标放到uri属性位置上,使用Alt+/来查看uri列表,找到其中包含jstl,并且包含core的就是了。
使用JSLT需要导入两个包:
下载参考地址http://www.runoob.com/jsp/jsp-jstl.html
2 JSTL核心库
1 out和set(重点)
out
<c:out value=”aaa”/> | 输出aaa字符串常量 |
<c:out value=”${aaa}”/> | 与${aaa}相同 |
<c:out value=”${aaa}” default=”xxx”/> | 当${aaa}不存在时,输出xxx字符串 |
<% request.setAttribute("a","<script>alert('hello');</script>"); %> <c:out value="${a }" default="xxx" escapeXml="false" /> | 当escapeXml为false,不会转换“<”、“>”。这可能会受到JavaScript攻击。 |
set:set标签的var、value、scope是一组,而target、property、value是一组。
<c:set var=”a” value=”hello”/> | 在pageContext中添加name为a,value为hello的数据。 |
<c:set var=”a” value=”hello” scope=”session”/> | 在session中添加name为a,value为hello的数据。 |
<jsp:useBean id="user" class="com.rl.domain.User"/> <c:set target="${user }" property="username" value="renliang"/> <c:set target="${user }" property="password" value="123456"/> <c:out value="${user }" /> | 给user的username属性赋值renliang,给user的password属性赋值123456。 |
Jslt.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@page import="com.rl.model.*" %> <!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> <% pageContext.setAttribute("pname", "likunpeng"); %>
<h1>JSTL核心库out</h1> <c:out value="${\"likunpeng\"} "></c:out><br> <c:out value="${pname }"></c:out><br> <c:out value="${name }" default="unkown"></c:out><br> <c:out value="${'<font color=red>likunpeng</font>'}" escapeXml="false"></c:out> <hr> <h1>JSTL核心库set</h1> <%--jstl中的set默认是给pageContext添加属性 --%> <c:set var="pname1" value="likunpeng"></c:set> <c:set var="pname2" value="likunpeng2" scope="request"></c:set> <%-- 直接 输出属性名,默认会从范围小的域中去寻找属性--%> ${pname2 }<br> <jsp:useBean id="person" class="com.rl.model.Person"></jsp:useBean> <c:set target="${person }" property="name" value="likunpeng3"></c:set> <c:set target="${person }" property="age" value="20"></c:set> <c:out value="${person }"></c:out> </body> </html> |