EL表达式+JSTL,forEach的两种用法

50 篇文章 0 订阅
<%@ page language="java" isELIgnored="false"
	contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	//向page作用域中设置属性
	pageContext.setAttribute("pageAttr", "page中的属性");
	pageContext.setAttribute("pname", "pageName");
	pageContext.setAttribute("count", 100);
	pageContext.setAttribute("nil", null);
%>
<!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>EL表达式+JSTL</title>
<script type="text/javascript">
	window.onload = function() {
		console.log('${color}');
	}
</script>
</head>
<body style="color:${color}">
	<h1>获取作用域中的值</h1>
	<p>xxxScope.key</p>
	<ul>
		<li>page中:${pageScope.pageAttr }</li>
		<li>request中:${requestScope.requestAttr }</li>
		<li>session中:${sessionScope.sessionAttr }</li>
		<li>application中:${applicationScope.applicationAttr }</li>
	</ul>
	<hr />
	<p>实际上可以省略sope</p>
	<ul>
		<li>page中:${pageAttr }</li>
		<li>request中:${requestAttr }</li>
		<li>session中:${sessionAttr }</li>
		<li>application中:${applicationAttr }</li>
	</ul>
	<p>获取name</p>
	<p>${name }</p>
	<p>tips:在没有指定作用域的情况下,默认查找顺序 page>request>session>application</p>
	<p>el表达式运算</p>
	算数运算:${count+100 }
	<br /> 关系运算:${count>200 }
	<br /> 逻辑运算:${count>90 && count+100<201 }
	<p>EL对null的处理</p>
	${nil } ${abc } ${def==null?'为null':"不为null" }
	<p>tips:当el获取一个为null的值时,不会做任何输出</p>
	<hr />
	<p>POJO属性获取</p>
	<ul>
		<li>String属性:${com.brand }</li>
		<li>float属性:${com.price }</li>
		<li>属性导航:${com.board.brand }</li>
	</ul>
	<p>获取集合</p>
	<ul>
		<li>整个集合${coms }</li>
		<li>获取其中的某一个:${coms[2] }</li>
		<li>获取电脑的属性:${coms[2].brand }</li>
	</ul>
	<p>获取map</p>
	<ul>
		<li>获取整个map:${map }</li>
		<li>获取其中一个值:${map.com1 }</li>
		<li>获取其中一个值:${map["com1"] }</li>
		<li>获取其中一个值的属性:${map["com1"].brand }</li>
	</ul>
	<p>EL获取请求参数</p>
	<ul>
		<li>获取单个参数 :${param.name }</li>
		<li>获取所有的请求值:${paramValues.op  }</li>
	</ul>
	<p>EL获取请求头</p>
	<ul>
		<li>获取单个的请求头:${header.Host }</li>
		<li>获取所有的请求头map:${headerValues }</li>
	</ul>
	<p>获取Cookie</p>
	<ul>
		<li>获取所有的cookie:${cookie }</li>
		<li>获取单个cookie:${cookie.loginTime} }</li>
	</ul>
	<p>获取当前web应用的名称</p>
	<h2>${pageContext.request.contextPath }</h2>

	<hr />
	<p>JSTL</p>
	<p>输出:c:out</p>
	<p>
		<c:out value="abc" />
		--
		<c:out value="${param.name }" />
	</p>
	<p>c:if标签</p>
	<p>
		<c:if test="${count>100 }" var="r" scope="request">
		count>100<br />
		</c:if>
		r=${requestScope.r }
	</p>
	<p>c:choose</p>
	<p>
		<c:choose>
			<c:when test="${count>100 }">
			大于100
		</c:when>
			<c:when test="${count==100 }">
			等于100
		</c:when>
			<c:otherwise>
			小于100
		</c:otherwise>
		</c:choose>
	</p>
	<p>c:foreach</p>
	<p>
		<c:forEach begin="1" end="6" step="2" varStatus="status">
			${status.index }geekHome<br>
		</c:forEach>
	</p>
	<p>
		<c:forEach items="${coms }" var="com" varStatus="status">
			${status.index }--${com.brand }-${com.price }<br/>
		</c:forEach>
	</p>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以帮您解决这个问题。首先,EL表达式JSTL都是用来简化JavaWeb开发的代码,使代码更加易读易维护。 EL表达式是一种用于在JSP页面访问JavaBean属性的表达式语言,可以通过${}符号来访问JavaBean的属性值,例如${person.name}可以获取person对象的name属性值。 JSTL是JavaServer Pages标准标记库,提供了一系列标签和函数,以简化在JSP页面使用Java代码的过程。其,c标签库是最常用的,包括核心标签、格式化标签、XML标签和SQL标签等。 下面是一个简单的示例,演示如何使用EL表达式JSTL来完成数据查询显示: 假设我们有一个Person类,包含id、name和age三个属性,我们需要在JSP页面显示所有Person对象的信息。 1. 在Servlet获取所有Person对象并存储在List集合。 ```java List<Person> personList = new ArrayList<Person>(); // TODO: 获取所有Person对象并存储在personList request.setAttribute("personList", personList); ``` 2. 在JSP页面使用JSTLforEach标签遍历personList集合,并使用EL表达式获取每个Person对象的属性值并显示在页面上。 ```jsp <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>Person List</title> </head> <body> <table> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> <c:forEach items="${personList}" var="person"> <tr> <td>${person.id}</td> <td>${person.name}</td> <td>${person.age}</td> </tr> </c:forEach> </table> </body> </html> ``` 在上面的示例,我们使用JSTLforEach标签循环遍历personList集合,将每个Person对象存储在变量person。然后使用EL表达式${person.id}、${person.name}和${person.age}获取每个Person对象的属性值,并显示在页面上。 希望这个示例能够帮助您完成数据查询显示。如果您有任何疑问,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值