JavaWeb_JSTL_表达式操作

JSTL_表达式操作

  • 1.JSTL 全名为 JavaServer Pages Standard Tag Library,目前最新的版本为 1.1。JSTL 是由 JCP (Java Community Process)所指定的标准规格,它主要提供给 Java Web 开发人员一个标准通用的标签函数库。
  • 2.JavaServer Pages Standard Tag Library (1.1 ),它的中文名称为 JSP 标准标签函数库。
  • 3.JSTL 所提供的标签函数库主要分为五大类:
     1)核心标签库 (Core tag library)
     2)I18N 格式标签库 (I18N-capable formatting tag library)
     3)SQL 标签库 (SQL tag library)
     4)XML 标签库 (XML tag library)
     5)函数标签库 (Functions tag library)
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
    较为常用的是核心标签库,I18N 在学国际化时再讲。另外,JSTL 也支持 EL(Expression Language)语法,例如:在一个标准的 JSP 页面中可能会使
    用到如下的写法:
<%= userList.getUser().getPhoneNumber() %>

使用 JSTL 搭配传统写法会变成这样:

<c:out value="<%= userList.getUser( ).getPhoneNumber( ) %>" />

使用 JSTL 搭配 EL,则可以改写成如下的形式:

<c:out value="${userList.user.phoneNumber}" />
  • 4.安装和使用
     1)把 jstl.jar 和 standard.jar 文件复制到 Web 应用的WebContent下WEB-INF下的lib的目录下即可。
     2)在 JSP 页面使用方法如下,先导入:在 JSP 中要使用 JSTL 中的核心标签库时,必须使用< %@ taglib %>指令,并且设定 prefix 和 uri 的值。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 5.核心标签库
     1)< c:out>主要用来显示数据的内容,就像是 < %= scripting-language %> 一样。
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
    说明:一般来说,< c:out>默认会将 <、>、’、” 和 & 转换为 & lt;、& gt;、& #039;、& #034; 和 & amp;。假若不想转换时,只需要设定<c:out>的 escapeXml 属性为 fasle 就可以了。
     2)< c:set>主要用来将变量储存至 JSP 范围中或是 JavaBean 的属性中。
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
    语法 1:将 value 的值储存至范围为 scope 的 varName 变量之中。
    语法 2:将本体内容的数据储存至范围为 scope 的 varName 变量之中。
    语法 3:将 value 的值储存至 target 对象的属性中。
    语法 4:将本体内容的数据储存至 target 对象的属性中。
    说明:使用< c:set>时,var 主要用来存放表达式的结果;scope 则是用来设定储存的范围,例如:假若 scope=“session”,则将会把数据储存在 session 中。如果<c:set>中没有指定 scope 时,则它会默认存在 Page 范围里。
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
     3)< c:remove>主要用来移除变量。
    语法:< c:remove var=“varName” [scope="{ page|request|session|application }"] />
    JavaWeb同步学习笔记之六十四、JavaWeb_JSTL_表达式操作
    说明:< c:remove>必须要有 var 属性,即要被移除的属性名称,scope 则可有可无。
  • 6.示例代码
    jstl.jsp
<%@page import="com.xs.javaweb.Customer"%>
<%@ 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>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>c:remove :移除指定域对象的指定属性值。</h4>
	
	<c:set value="1997-09-01" var="date" scope="session"></c:set>
	date:${sessionScope.date }
	<br><br>
	<c:remove var="date" scope="session"/>
	date:--${sessionScope.date }
	<br><br>
	
	<h4>c:set :可以为域对象赋属性值,其中value属性支持EL表达式;还可以为域对象中的JavaBean的属性赋值,target,value都支持EL表达式。</h4>
	
	<c:set var="name" value="XS" scope="page"></c:set>
	<%--
		pageContext.setAttribute("name", "XS");
	--%>
	name:${pageScope.name }
	
	<br><br>
	<c:set var="subject" value="${param.subject}" scope="session"></c:set>
	subject:${sessionScope.subject }
	
	<br><br>
	<%
		Customer customer = new Customer();
		customer.setId(1001);
		request.setAttribute("customer", customer);
	%>
	ID:${requestScope.customer.id }
	<c:set target="${requestScope.customer }" property="id" value="${param.id }"></c:set>
	<br>
	ID:${requestScope.customer.id }
	<br><br>
	
	<h4>c:out :可以对特殊字符进行转换。</h4>
	
	<%
		request.setAttribute("book", "<<Java>>");
	%>
	book:${requestScope.book }
	<br>
	<br>
	book:<c:out value="${requestScope.book }" default="booktitle"></c:out>

</body>
</html>

相关文章:

  • 2021-11-11
  • 2021-07-25
  • 2021-06-07
  • 2021-07-08
  • 2021-05-14
  • 2021-12-27
  • 2021-09-20
  • 2021-10-06
猜你喜欢
  • 2021-04-25
  • 2021-09-19
  • 2021-07-16
  • 2021-07-01
  • 2022-12-23
  • 2022-01-06
  • 2021-12-23
相关资源
相似解决方案