JSTL

JSTL(JavaServer Pages Standard Tag Library):JSP标准标签库,=标签库+EL,用来消除JSP中的JAVA代码

=============================================================
标签库
一共有5个
在这里插入图片描述
一般核心标签库就够了,在JSP页面引用:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

3个常用标签:if、foreach、choose
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

==============================================================
EL
就是一种表达式语言:让前台页面可以获取放在四大作用域中的共享数据(文章最后)
注:el表达式获取作用域中的属性,要依靠JavaBean的可读属性即需要有getter方法,否则无法获取;
语法:${key} :会到依次从四个作用域里面去找(就近原则)key对应的value,如果key不存在,显示为空字符串(页面看起来什么都没有),而不会显示null值(体验度好);

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!-- prefix	前缀 -->
<!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>
	<!-- 有时候,项目多了,可能会忘记上下文路径,用这个解决路径问题 -->
	<form action="${pageContext.request.contextPath}/bean" method="get">
		<select name="cal">
			<!-- 下拉框回值的三种写法,当然第二种最好用 -->
			<option value="+"
				<%if("+".equals(request.getAttribute("cal"))){ %>
					selected="selected"
				<%}%>
			>+</option>
			<option ${oneEmp.sex.equals("男")?'selected="selected"':""} value="男" > 男 </option>
			<option value=""
				<c:if test='${(oneEmp.sex).equals("")}'>
						selected="selected"
				</c:if>
				> 女 
			</option>
		</select>
		<input type="number" name="num2" value='<%=request.getAttribute("num2")==null?"":request.getAttribute("num2")%>'>
	</form>
	<hr>
------------------EL表达式在四大作用域取值----普通值--------------------<br/>
${name }<br/>
${sessionScope.name }<br/>
${applicationScope.name }<br/>
------------------EL表达式在四大作用域取值----对象--------------------<br/>
${user}<br/>
${user.id}<br/>
${user.name}<br/>
${user.age}<br/>
------------------EL表达式在四大作用域取值----map--------------------<br/>
${map}<br/>
${map.hoppy}<br/>
${map["www.baidu.com"]}<br/>	<!-- 后台存的特殊key名 -->
${map['www.baidu.com']}<br/>
------------------EL表达式在四大作用域取值----list--------------------<br/>
${list}<br/>
${list[0]}<br/>
${list[1]}<br/>
${list.get(2)}<br/>

${list[2].id}<br/>
${list[2].name}<br/>
${list[2].age}<br/>
------------------EL表达式在四大作用域取值----特点--------------------<br/>
<!-- 获取上下文路径 -->
${pageContext.request.contextPath}
<!-- 可以运算 -->
${list[2].name.equals("韬3") }
${list[2].age==98}
------------------JSTL标签库的学习--------------------<br/>
<c:if test="${list[2].age!=98}">
	true---98
</c:if>

<br/>

<c:forEach begin="0" step="1" end="${list.size()-1}" varStatus="status">
	${list.get( status.count - 1 ) }   &emsp;    ${status.count}<br/>
</c:forEach>

<br/>

<table border="1" width="500px" align="center">
	<c:forEach items="${list }" var="u" varStatus="status">
		<tr>
			<td>${status.count }</td>
			<td>${u.id }</td>
			<td>${u.name }</td>
			<td>${u.age }</td>
		</tr>
	</c:forEach>
</table>
</body>
</html>

扩展:
要求:不使用js,直接访问jsp,jsp展示数据库数据
思路:判断页面是否有传值,让页面先跳后台servlet,servlet传值再跳jsp

<c:if test=”${empty list}>
	<jsp:forward page="xxx.action"></jsp:forward>
</c:if>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值