EL表达式和JSTL(JSTL)

JSTL是Sun公司为了解决市面上出现了很多功能相同标签,令网页制作者无从选择,而制定的一套标准标签库(JavaServer Pages Standard Tag Library)。
JSTL标准标签库是由5个不同功能的标签库共同组成的:
Core是一个核心标签库,它包含了实现Web应用中通用操作的标签;
I18N是一个国际化/格式化标签库,它包含实现Web应用程序的国际化标签和格式化标签;
SQL是一个数据库标签库,它包含了用于访问数据库和对数据库中的数据进行操作的标签;
XML是一个操作XML文档的标签库,它包含对XML文档中的数据进行操作的标签;
Functions是一个函数标签库,它提供了一套自定义EL函数,包含了JSP网页制作者经常要用到的字符串操作。
将jstl.jar和standard.jar两个文件复制到chapter07项目的lib目录下。
建立一个test.jsp文件,使用taglib指令引入Core标签库,使用<c:out>标签:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jstl</title>
</head>
<body>
<c:out value="大数据------javaweb"></c:out>
<br/>==============================<br/>
<c:out value="${param.username }" default="dashuju" escapeXml="false"></c:out>
<br/>==============================<br/>
<c:out value="${param.username }" escapeXml="true">大数据</c:out>
</body>
</html>

建立一个c_if.jsp文件,对test(设置逻辑表达式)、var(指定逻辑表达式中变量的名字)、scope(指定var变量的作用范围,默认值为page)进行编写:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
         <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--request.setAttribute("key",1); --%>
<c:set var="key" value="8" scope="request" property="key1"></c:set>
${requestScope.key }<br/>
<c:if test="true">云裳</c:if><br/>
<c:if test="false">明月潭水荷花</c:if><br/>
<c:if test="true">烈日清风绿阴</c:if><br/>
</body>
</html>

建立一个c_choose.jsp文件使用<c:choose>标签(必须与<c:when>标签、<c:otherwise>标签一起使用)、<c:when>标签、<c:otherwise>标签:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>c:choose 标签实例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${200*2}"/>
<p>你的生活费为 : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       太惨了,同情你一秒钟。
    </c:when>
    <c:when test="${salary > 1000}">
       还不错,这个月还能过活......
    </c:when>
    <c:otherwise>
       唉!后面半个月只能吃土了。
    </c:otherwise>
</c:choose>
</body>
</html>

建立一个c_foreach.jsp文件,使用<c:forEach>标签,编译var属性(指定将当前迭代到的元素保存到page域中的名称)、items属性(指定将要迭代的集合对象)、varStatus属性(指定当前迭代状态信息的对象保存到page域中的名称)、begin属性(指定从集合中第几个元素开始进行迭代,begin的索引值从0开始)、step属性(指定迭代的步长,即迭代因子的热量)、count(表示元素在集合中的序号,从1开始计数)、index(表示当前元素在集合中的索引,从0开始计数)、first(表示当前是否为集合中的第一个元素)、last(表示当前是否为集合中的最后一个元素):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String[] fruits={"apple","banana","watermalen","sugercame"};
		request.setAttribute("a", fruits);
	%>
	string中的元素:
	<c:forEach var="xx" items="${a }">
		${name}<br />
	</c:forEach>
	<%
		Map usermap=new HashMap();
		userMap.put("tom","13");
		userMap.put("huihui","14");
		userMap.put("hongyao","52");
		request.setAttribute("map", usermap);
	%>
	
	<hr />
	
	hasmap中集合的元素:
	<c:forEach var="m" items="${map }">
		key:${m.key }------------value:${m.value }<br />
	</c:forEach>
	
	<hr />
	
	colorlist集合(指定迭代范围和步长)<br />
	<% 
		List color=new ArrayList();
		color.add("red");
		color.add("yellow");
		color.add("blue");
		color.add("green");
		color.add("black");
		color.add("gray");
		request.setAttribute("list", color);
	%>
	<c:forEach var="aa" items="${list }" begin="2" end="5" step="1">
		${aa} <br />
	</c:forEach>
	
	<hr />
	
		<% 
		List user=new ArrayList();
		user.add("tanyu");
		user.add("moshuidianbai");
		user.add("momobaiqing");
		request.setAttribute("users", user);
	%>
	<table border="1">
		<tr>
			<td>序号</td>
			<td>索引序号</td>
			<td>是否是第一个元素</td>
			<td>是否是最后一个元素</td>
			<td> 元素的值</td>
		</tr>
	<!-- -varstatus属性 -->
	<c:forEach var="bb" items="${users }" varStatus="v">
		<tr>
			<td> ${v.count }</td>
			<td> ${v.index }</td>
			<td> ${v.first }</td>
			<td> ${v.last }</td>
			<td> ${bb }</td>
		</tr>
	</c:forEach>
</body>
</html>

建立一个c_url.jsp文件,使用<C:param>标签和<c:url>标签,编译name属性(指定参数的名称)、value属性(指定参数的值,当使用<c:param>标签为一个URL地址附加参数时,它会自动对参数值进行URL编码)、value属性(指定构造的URL)、context属性(指定导入同一个服务器下其他Web应用的名称)、var属性(指定将构造的URL地址保存到域对象的属性名称)、scope属性(指定将构造好的URL保存到域对象中):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	使用绝对路径:<br/>
	<c:url var="absouLateURL" value="http://localhost:8080/chapter07/login.html">
		<c:param name="username" value="humuling"></c:param>
		<c:param name="country" value="cannada"></c:param>
	</c:url>
	<a href="${absouLateURL }">绝对路径登录页面</a>
	<hr />
	使用相对路径:<br/>
	<c:url var="risistURL" value="login.html?username=huihui&country=china"></c:url>
	<a href="${risistURL }">相对路径登录页面</a>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaWeb 中,使用 EL 表达式和 JSTL 可以实现在 JSP 页面中进行动态数据处理和展示。下面我来分别介绍这两种技术的实现方法。 1. EL 表达式的实现 EL 表达式是一种用于在 JSP 页面中访问 JavaBean 中属性的语言。在 JSP 页面中,我们可以通过 ${} 语法来使用 EL 表达式。例如,我们可以通过 ${user.name} 来获取 JavaBean 中的 name 属性的值。 要在 JavaWeb 中使用 EL 表达式,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JavaBean 中定义属性,并提供 getter 和 setter 方法。 4) 在 JSP 页面中使用 EL 表达式来访问 JavaBean 的属性值。例如:${user.name}。 2. JSTL 的实现 JSTL 是一组 JSP 自定义标签,用于在 JSP 页面中进行动态数据处理和展示。JSTL 提供了一些常用的标签库,例如 core、fmt、sql、xml 和 functions 等。 要在 JavaWeb 中使用 JSTL,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JSP 页面中使用 JSTL 标签库提供的标签来进行动态数据处理和展示。例如,使用 <c:forEach> 标签来遍历一个集合: ``` <c:forEach var="item" items="${list}"> ${item} </c:forEach> ``` 这样就可以在 JSP 页面中使用 EL 表达式和 JSTL 来进行动态数据处理和展示了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值