JwebEL表达式和JSTL标签

一、EL表达式的介绍和应用

1、什么是EL:

EL即Expression Language(表达式语言),是一种在jsp页面获取数据的简单方式;重点:只能获取数据,不能设置数据。

2、为什么要使用EL表达式:

因为在javaBean在JSP中的局限性,获取javaBean属性必须要实例化和强制类型转换。所以我们需要用EL表达式来简化它。

<%
     Employee employee = (Employee)request.getAttribute("employee");
    Computer comp = employee.getComputer();
    String manufacturer = comp.getManufacturer();
%>

ps:如果页面编写出现逻辑错误,将会导致代码执行错误,并且jsp页面编译页面时也会产生错误。

3、EL的语法格式:

在jsp的任何静态部分都可以通过。
${  EL exprission }
${  bean.name } 或  ${  bean['name'] }
来获取指定表达式的值。

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

4、EL获取数据(有四个属性范围):

分别是:page:当前页面,request:两个页面之间

session:浏览器级别,application:服务器级别

怎么区别不同的作用域·:

分别使用:pageScope;requestScop,sessionScope,applicationScope。分别在作用域后面加Scope。

ps:如果没有使用内置对象,则查找数据顺序是依次按照有小到大从四个属性范围开始,而加上作用域后就能查找指定名称的属性值。

二、jstl标签

1、什么是JSTL?

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

2、JSTL标签库:

JSTL一共包含四大标签库:

  • core:核心标签库,我们学习的重点;
  • fmt:格式化标签库,只需要学习两个标签即可;
  • sql:数据库标签库,不需要学习了,它过时了;
  • xml:xml标签库,不需要学习了,它过时了。

3、使用taglib指令导入标签库:

除了JSP动作标签外,使用其他第三方的标签库都需要:

a、导包;

b、在使用标签的JSP页面中使用taglib指令导入标签库;

下面是导入JSTL的core标签库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • prefix="c":指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c;
  • uri="http://java.sun.com/jstl/core":指定标签库的uri,它不一定是真实存在的网址,但它可以让JSP找到标签库的描述文件;

四、forEach标签:

forEach当前就是循环标签了,forEach标签有多种两种使用方式:

使用循环变量,指定开始和结束值,类似for(int i = 1; i <= 10; i++) {};

循环遍历集合,类似for(Object o : 集合);

<!-- for循环 -->
	<T277:forEach begin="1" step="10" end="100" var="i">
		${i }<br>
	</T277:forEach>
	<hr>
	<!-- 遍历集合 -->
	<T277:forEach items="${ulist }" var="user">
		${user.uname }____${user.upwd }<br>
	</T277:forEach>

五、if标签

1、if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行。

例如:

<T277:if test="${true }">
	这是成立的
</T277:if>
	<T277:set var="a" value="19"></T277:set>
	<T277:if test="${a>=10 }">
		<h1>大于等于10</h1>
	</T277:if>
	<T277:if test="${a<10 }" var="name">
		<h1>小于10</h1>
	</T277:if>
	<T277:out value="${name }"></T277:out>

ps:value是定义var的值

第二种:

<!-- 本页面:如果用户登录 就显示欢迎XXX,如果没有登录就显示登录的表单 
	empty:判断对象是否为空,为空返回true
	not empty:判断对象不为空,不为空就返回true
	-->
	<T277:if test="${not empty u }">
	欢迎:${u.uname }
</T277:if>

	<T277:if test="${empty u }">
		<form action="dologin.jsp">
			用户名:<input type="text" name="uname"><br> 密码:<input
				type="password" name="upwd"><br> <input type="submit"
				value="登录">
		</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值