web El表达式&JSTL标签,jsp域对象

哈喽,大家好,今天跟我们一起来学习一下jstl和el这两个优化jsp项目的表达式标签吧

一,EL表达式

1.什么是EL

EL即Expression Language(表达式语言)EL语言的灵感来自于ECMAScript和XPath表达式语言。EL表达式语言是一种简单的语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。”

2.EL的语法

${ EL exprission }
${ bean.name } 或 ${ bean[‘name’] }

${bean.name}实质是调用bean的getName()方法

${msg}
	<br> 
	${msg2==null} 
	<br>
	${msg==null?1:2}
	<%
	//EL表达式有一个特征,如果文null或者什么东西都没有,那它就不显示
	//El表达式必须从雨点小中取值
	User u = new User("root", "root123");

	List<User> list=new ArrayList<>();
	pageContext.setAttribute("User", u);
	pageContext.setAttribute("us",list );
	%>
	<br>
	${User}
	<br>
名字:	${User.getName()}
${User.name}
<br>
${User.pwd}
密码:	${User.getPwd()}
<br>
名字:	${User.name.equals("root")?"n你好":"adasas "}
<br>
${us.size()==0}  --
${empty us}--
${not empty us}

以“ ” 作 为 开 始 , 以 “ ” 作 为 结 束 直 接 使 用 变 量 名 获 取 值 {”作为开始,以“}”作为结束 直接使用变量名获取值 使
${ username }

变量属性范围名称

属性范围EL中的名称
pagepageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null
requestrequstScope
sessionsessionScope
applicationapplicationScope

3.EL隐式对象介绍

隐式对象

二,JSTL标签

1,什么是JSTL标签

JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已
jstl

2,JSTL的使用

  1. 首先导入jstl的jar包,然后引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  1. 使用:
<%
--条件标签:if
	String zz = request.getParameter("zz");
	pageContext.setAttribute("zz", zz);
	%>
	<c:if test="${zz==null}">
		<h1>嘿嘿,你还没登录</h1>
	</c:if>

	<c:if test="${zz!=null}">
		<h1>欢迎,你来到我的心上❤❤❤</h1>
	</c:if>

3,jstl标签库

jstl

  1. 举例代码
    –通用标签:set out remove
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<body>
<c:set var= "example" value="${100+1}" scope="session"  />	

<c:out value="${example}"/>

<c:remove var= "example" scope="session"/>
</body>

–条件标签:if 上面的使用已举例

–迭代标签:forEach

<%
	List<Goods> list = new ArrayList<>();
	for (int i = 0; i < 5; i++) {
		Goods gs = new Goods();
		gs.setGoodsId(i);
		gs.setGoodsName("红米k" + i);
		gs.setGoodsType("小米" + i);
		gs.setGoodsPrice(i * 1000.0);
		list.add(gs);
	}
	pageContext.setAttribute("list", list);
	%>

	<!--商品遍历-->
	<table>
		<tr>
			<th>商品编号</th>
			<th>商品名字</th>
			<th>商品类型</th>
			<th>商品价格</th>
		</tr>
		
		<c:forEach items="${list}" var="goods">
		<tr>
	    	<td>${goods.goodsId}</td>
			<td>${goods.goodsName}</td>
			<td>${goods.goodsType}</td>
			<td>${goods.goodsPrice}</td>
		</tr>
		</c:forEach>
	</table>

三,jsp域对象

jsp内置对象之域对象:

– pageContext:属性的作用范围仅限当前的jsp页面(范围最小)

– request:属性的作用范围仅限同一个请求(转发有效)

– session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)

– application:属性的作用范围仅限于当前web应用(范围最大)

ok.今天的分享就到这了,点个赞在走吧!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值