el表达式+jstl标签

1、EL是什么?EL即Expression Language(表达式语言)

(1)、表达式是JSP必备的语法元素。EL表达式语言来自于标准化脚本语言ECMAScriptXPath,EL表达简化了JSP语言的写法。

EL的功能: 替代JSP页面中的复杂代码

例如,对应于以下Java代码片段:

  <%
     if(session.getAttribute(uname)!=null){
         out.println(session.getAttribute("uname").toString());
     }

   %>

如果使用EL表达式,则只需要一行代码,即:${uname}

效果图:1-1


(2)、使用EL表达式的基本语法:它以 “${” 开头,以“}”结束,中间为合法表达式。

EL的语法格式如下:${el表达式 }  、 ${  EL exprission }

${  u.name } 或  ${  u['name'] }

使用EL表达式之后:${u.uname }:意思是从setAttribute中取得用户的name。

使用EL表达式之前,JSP的代码如下:

<%
        //实例化一个用户对象
        User u = new User(1, uname, upwd, "清澈的爱只为中国");
        //把用户对象放到request对象中 
        request.setAttribute("u", u);
%>

效果图: 1-2

 


综上所述可知(特点):

自动转换类型:1、 EL得到某个数据时可以自动转换类型 ;对于类型的限制更加宽松

2、EL的语法比传统的JSP代码更方便、简洁

(3)el作用域:
作用域访问对象:pageScope、requestScope、sessionScope、applicationScope

变量属性范围名称:

属性范围

            EL中的名称

page

pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null

request

requstScope

session

sessionScope

application

applicationScope

EL语法:
 (request)Y:${y }
 (session)Y:${sessionScope.y }
 (application)Y:${applicationScope.y }

对应JSP代码:

<%
      //这里是用来演示 作用域的
      request.setAttribute("y", "me");
      session.setAttribute("y", "and");
      application.setAttribute("y", "you");

%>

效果图: 1-3


 

隐式对象:参数访问对象:param、paramValues

JSP隐式对象:pageContext

EL隐式对象介绍:

对象名称

说  明

pageScope

返回页面范围的变量名,这些名称已映射至相应的值

requestScope

返回请求范围的变量名,这些名称已映射至相应的值

sessionScope

返回会话范围的变量名,这些名称已映射至相应的值

applicationScope

返回应用范围内的变量,并将变量名映射至相应的值

param

返回客户端的请求参数的字符串值

paramValues

返回映射至客户端的请求参数的一组值

pageContext

提供对用户请求和页面信息的访问



(4)运算符:EL表达式中定义了许多运算符
 算术运算符、关系运算符、逻辑运算符、三元运算符等,使用这些运算符,JSP页面会更加简洁。故,复杂的操作可以使用Servlet和JavaBean(实体类)完成,而简单的内容则可使用EL提供的运算符。(下期会讲到)

例如:运算符”[ ]” 运算符”.”

作用:1、获取对象属性【名称】

${user.name}《=====》${user.[name]}

2、获取对象集合中的数据 在Session中保存了一个(list)集合user

${sessionScope.user[1]} :    得到集合中第二位的对象

案例展示:login.jsp 

<body>
<h1>登录页面</h1>
	<form action="dologin.jsp">
		用户名:<input type="text" id="uname" name="uname"><br>
		密码:<input type="password" id="upwd" name="upwd"><br>
		
		<input type="submit" value="登录"> 
		<input type="reset" value="重置" >
	</form>
</body>

效果图:1-4 

 

 

dologin.jsp

<%@page import="java.util.ArrayList"%>
<%@page import="com.china.entity.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//实例化一个对象
	User us = new User(1,"love","666","咳咳咳");
	request.setAttribute("us", us);
	
	//模拟集合
	ArrayList<User> ulist = new ArrayList();
	for(int i=1;i<=6;i++){
		ulist.add(new User(i,"love"+i,"999","他说来日方长"));
	}
	request.setAttribute("ulist", ulist);
	//转发
	request.getRequestDispatcher("index.jsp").forward(request, response);
%>

index.jsp


<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="sum"%>
<html>
<head>
<title>测试页面</title>
</head>
<body>
<sum:if test="${true }">
	这是成立的
</sum:if>

<sum:set var="x" value="18"></sum:set>
<sum:if test="${x>=10 }">
	<h1>x大于等于10</h1>
</sum:if>

<sum:if test="${x<10 }" var="name">
	<h1>x小于10</h1>
</sum:if>

<hr>
<!-- 本页面:如果用户登录 就显示欢迎XXX,如果没有登录就显示登录的表单 
	empty:判断对象是否为空,为空返回true
	not empty:判断对象不为空,不为空就返回true-->
<sum:if test="${empty us }">
	<form action="dologin.jsp">
		用户名:<input type="text" name="uname"><br>
		密码:<input type="password" name="upwd"><br>
		<input type="submit" value="登录">
		<input type="reset" value="重置">
	</form>
</sum:if>

<sum:if test="${not empty us}">
	欢迎:${us.uname }
</sum:if>

<hr>
<!-- forEach遍历集合 -->
<sum:forEach items="${ulist }" var="user">
	<h2>${user.uname }____${user.upwd }____${user.uinfo }<br></h2>
</sum:forEach>

<hr>
<!-- for循环 -->
<!-- begin:i从1开始  end:结束 step:i每次加10 (i+=10)-->
<sum:forEach begin="1" step="20" end="100" var="i">
	${i }<br>
</sum:forEach>
</body>
</html>

效果图:1-5


2、jstl  jsp标准标签库

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
(1)、jstl使用步骤:(JSTL通常会与EL表达式合作实现JSP页面的编码)

1、在项目中导入驱动包

2、在JSP页面中添加taglib指令(写引用代码),即:
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>

3、 使用JSTL标签

(2)、JSTL 的优点:

1、提供一组标准标签

2、可用于编写各种动态 JSP 页面

(3)、JSTL标准标签库内的标签:

核心标准库:

通用标签:
        set :设置指定范围内的变量值

例如:<c:set var="x" value="18"></c:set>

        <c:set>主要用来将变量储存至JSP范围中或是 JavaBean 的属性中。
                    利用头标记与尾标记赋值
        out : 计算表达式并将结果输出显示

例如:<c:out value="${name }"></c:out>
        remove : 移除变量(删除指定范围内的变量)
        catch  捕获异常 var

条件标签:if标签用于判断条件是否成立,与Java中的If语句作用相同
        if  choose when otherwise

迭代标签:实现对集合中对象的遍历
        forEach: begin:开始         end:结束        step:自增多少        var:用于存放循环的值的变量名

        items:存放数组或者集合对象  el        varstatus:当前的变量的状态

<!-- forEach遍历集合 -->
<sum:forEach items="${ulist }" var="user">
    <h2>${user.uname }____${user.upwd }____${user.uinfo }<br></h2>
</sum:forEach>

总结:理解代码意思,敲起来不费劲。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值