JSTL与EL

1 篇文章 0 订阅

EL
JSTL

EL

EL表达式:
如果只是使用EL表达式,不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/servlet2.4、JSP2.0规范就可以。但是它的功能有限,如:针对于空,给出默认的输出,迭代循环数组元素等是无法实现的。对于JSTL,这些都是没有问题的,但需要进行引入和说明。
语法: scopescope(applicatioin/session/servlet)pageScopereqeustScopesessionScopeapplicationScopepageScopeapplicationScope {requestScope.hello}
在jsp中,很少直接传字串,一般传的是对象,且对象中还包含有其他对象,无需引入包,要求对象都需要有get方法,在jsp中获取数据的时候,直接点出get后面的那一部分,不区分大小写。

EL运算符
运算符允许对数据和文字进行组合以及比较。

EL运算符:
类别 运算符
算术运算符 +、-、*、/(或 div)和 %(或 mod)
关系运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和 >=(或ge)
逻辑运算符 &&(或 and)、||(或or)和 !(或 not)
验证运算符 empty
验证运算符(empty):对于验证数据特别有用。empty 运算符采用单个表达式作为其变量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。

JSTL

JSTL是什么
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL1.0 由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行JSP页面的国际化。xml 库包含一些标记,这些标记用来操作通过XML表示的数据,而 sql 库定义了用来查询关系数据库的操作。 两个 JSTL 标记库验证器允许开发人员在其 JSP 应用程序中强制使用编码标准。

如果要使用JSTL,则必须引用jstl.jar和 standard.jar两个包。

这里写图片描述
JSTL标签主要使用out、if、fotEach、import、formatDate、

练习时用的代码

package com.bdqn.entity;

public class Dept {
    private int did;
    private String dname;
    private String demc;

    public Dept(){

    }

    public Dept(int did, String dname, String demc) {
        this.did = did;
        this.dname = dname;
        this.demc = demc;
    }

    public int getDid() {
        return did;
    }
    public void setDid(int did) {
        this.did = did;
    }
    public String getDname() {
        return dname;
    }
    public void setDname(String dname) {
        this.dname = dname;
    }
    public String getDemc() {
        return demc;
    }
    public void setDemc(String demc) {
        this.demc = demc;
    }

    @Override
    public String toString() {
        return "Dept [did=" + did + ", dname=" + dname + ", demc=" + demc + "]";
    }
}

JSP

<%@page import="com.bdqn.entity.Dept"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <%
    Dept dept1 = new Dept(1,"a","aa");
    Dept dept2 = new Dept(2,"b","bb");
    Dept dept3 = new Dept(3,"c","cc");
    List<Dept> list = new ArrayList<Dept>();
    list.add(dept1);
    list.add(dept2);
    list.add(dept3);
    request.setAttribute("list", list);
    Dept dept = new Dept();
    dept.setDid(111);
    request.setAttribute("dept1", dept);
   %>

  <body>
    <c:set var="name" value="123123123" scope="request"></c:set>
    <c:out value="${name}"></c:out>
    <br>
    <c:out value="<a href='#'>ad</a>" escapeXml="false"/>
    <br>
    <c:out value="<a href='#'>ad</a>" escapeXml="true"/>
    <br>
    <table border="1">
        <c:forEach var="dept" items="${list}" varStatus="start">
            <tr style="color : <c:if test='${start.index % 2==0}'>red</c:if>">
                <td>${dept.did}</td>
                <td>${dept.dname}</td>
                <td>${dept.demc}</td>
            </tr>
        </c:forEach>
    </table>

    <c:if test="${!empty dept1.did}"> <!-- 判断dept1.did是否为非空 -->
    <c:out value="ddd"></c:out>
    </c:if>
    <c:if test="${empty dept1.did}">   <!-- 判断dept1.did是否为空 -->
    <c:out value="kkk"></c:out>
    </c:if>
    <p style="<c:if test='${!empty dept1.did}'>color: red</c:if>">ddddddd</p>  <!-- 判断dept1.did是否为非空,是变红色 -->
    <c:url value="index.jsp" var="url">
    <c:param name="did" value="1"></c:param>
    <c:param name="dname" value="aa"></c:param>
    </c:url>
    <c:out value="${url}"></c:out>
  </body>
</html>

通常EL和JSTL是一起使用了,两者互补

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值