Java_Web之JSTL和EL

今天学了JSTL和EL,替换了以前for循环,感觉代码越来越少了,十分方便。JSTL和EL密不可分。

一、什么是EL表达式?

什么是EL
EL即Expression Language(表达式语言)
EL的功能
替代JSP页面中的复杂代码
EL的语法
${  EL exprission }
${  bean.name } 或  ${  bean[‘name‘] }

二、EL的特点

自动转换类型

EL得到某个数据时可以自动转换类型

对于类型的限制更加宽松

使用简单

相比较在JSP中嵌入Java代码,EL应用更简单

三、EL的语法

EL语法

以“${”作为开始,以“}”作为结束

直接使用变量名获取值$

${  username }

变量属性范围名称

四、EL中的运算符和EL隐式对象

EL运算符
运算符”[ ]”
运算符”.”
作用
获取对象属性

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

什么是JSTL?

使用JSTL实现JSP页面中逻辑处理

什么是JSTL

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库

JSTL通常会与EL表达式合作实现JSP页面的编码

二、JSTL的环境搭建

使用JSTL的步骤

创建Web工程,选择JSTL1.1(目前使用的版本不需要配置,高版本集合在一起)

在JSP页面添加taglib指令

使用JSTL标签

JSTL标准标签库介绍

通用标签

条件标签

迭代标签

JSTL和EL案例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%
    String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    session.setAttribute("username","小明");

    List list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");

    request.setAttribute("aa",list);

    Map map = new HashMap();
    map.put("name","admin");
    map.put("pwd","adminpassword");

    request.setAttribute("map",map);

    session.setAttribute("map",map);

    application.setAttribute("c","123456");
    application.setAttribute("c","789");

    entity.User user = new entity.User();
    user.setUsername("aa");
    user.setPassword("bb");
    session.setAttribute("user",user);

    //request.getParameter();//------param:获取表单项
    //request.getParameterValues();//------paramValues:获取多个表单项
%>

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

    <title>My JSP ‘index.jsp‘ starting page</title>

  </head>

  <body>
   <!--
      注意:
      EL表达式默认范围:request
      如果没有确定范围;那么EL表达式就会按照范围的顺序按个进行查找:request-session-page-appplication
      直到遍历JSP9大内置对象找到相对应的值为止
   -->
       以前的方式: <%=session.getAttribute("username") %><br/>
    EL表达式:${sessionScope.username }<br/>
    ${applicationScope.c }<br/>
    EL表达式在request取出集合:${aa}<br/>
           取出map集合:${map["name"] }<br/>
    ${map.pwd }<br/>
    EL取出session中map集合:${sessionScope.map.name }<br/>
    ${sessionScope.user.username }

    <form action="success.jsp" method="post">
        username:<input type="text" name="username" /><br/>
        password:<input type="password" name="password" /><br/>
        love:<input type="checkbox" name="love" value="a" />吃饭<br/>
            <input type="checkbox" name="love" value="b" />睡觉<br/>
            <input type="checkbox" name="love" value="c" />敲代码<br/>
        <input type="submit" />
    </form>
  </body>
</html>

处理页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    String name = request.getParameter("username");
    String[] love = request.getParameterValues("love");

%>

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

    <title>My JSP ‘success.jsp‘ starting page</title>

  </head>
  <!--
      JSTL的出现是为了替代以往下载jsp页面中的java逻辑判断和选择判断语句
      EL表达式的出现是为了替代以往的表达式
      JSTL一般与EL表达式合作开发动态的jsp页面
   -->
   <%
       //if(条件)
   %>
  <body>
      <p>
      <c:set var="abc" value="${99+1}" scope="session" />
      输出值:<c:out value="${abc}"/>
      删除值:<c:remove var="abc" scope="session" />
      删除之后:<c:out value="${abc}" default="null" />
      </p>
      <c:if test="${1==1}" var="if1" >
          是真的
      </c:if>
      <!--
          empty:判断当前值是否为空null
          如果为null则返回true
          否则返回false
       -->
      <c:if test="${not empty null }" var="if2"></c:if>
      <p>
          输出if1结果:<c:out value="${if1}" /><br/>
          输出if2结果:<c:out value="${if2}" /><br/>
      </p>
       用户名:${param.username }<br>
       密   码:${param.password }<br>
       love:${paramValues.love[0] },${paramValues.love[1] },${paramValues.love[2] }
       长度:${fn:length(paramValues.love) }

       <div style="margin-top: 50px">
           <%
               List list  = new ArrayList();
               list.add("a");
               list.add("b");
               list.add("c");
               list.add("d");
               list.add("e");

               request.setAttribute("list",list);

           %>
           <table border="1">
               <c:forEach items="${list}" var="m"  varStatus="statu">
                   <tr><td>${m }=====${statu.index }</td></tr>
               </c:forEach>
           </table>
       </div>

  </body>
</html>
时间: 2024-08-07 13:59:16

Java_Web之JSTL和EL的相关文章

【转】JSP中的JSTL与EL表达式用法及区别

对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程语言,甚至不是脚本编制语言.通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为. EL基本格式 EL表达式的格式:用美元符号($)定

JSTL、EL的一些实践记录

JSTL.EL是页面渲染比较常用的基础的技术.然而,因完成的项目大多是通过JSON或XML返回页面,然后Javascript渲染. 所以,JSTL.EL的使用语法,到现在也很不熟练,不可信手拈来. 借最近做页面的权限展现,用到他们,记录一些简单的实践. 所有数据在Servlet中设置(为了模拟实际情况),而非页面设置. package com.nicchagil.study.jstl; import java.io.IOException; import java.util.ArrayList;

Java之旅(三)--- JSTL和EL表达式

 先给大家看一段JSP的代码,看看有什么感受? <% List<UsEL> usELList = pageModel.getList(); for (ItELator<UsEL> itEL=usELList.itELator(); itEL.hasNext();) { UsEL usEL = itEL.next(); %> <tr> <td class="rd8"> <input type="checkbo

JSTL、EL、ONGL、Struts标签的区别与使用

 一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以使用定制标签库,Jstl使JSP开发开发者可以减少对脚本元素的需求,甚至可以不需要它们. 定义 JSTL(JSP StandardTagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2和Ser

JAVA学习JSTL与EL

一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标准标签库,由apache实现 3.JSTL一般要配合EL表达式一起使用,由于在JSTL在赋值时会大量的使用EL,能够说EL是JSTL的一种辅助. 4.在使用时:JSTL须要引入:jstl.jar和Standart.jar到WEB_INF/lib文件夹下,可是仅仅使用EL表达式不须要引用不论什么jar

Java之旅(三)--- JSTL和EL表情

 先给大家看一段JSP的代码.看看有什么感受? <% List<UsEL> usELList = pageModel.getList(); for (ItELator<UsEL> itEL=usELList.itELator(); itEL.hasNext();) { UsEL usEL = itEL.next(); %> <tr> <td class="rd8"> <input type="checkbo

JAVA学习之JSTL与EL

一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标准标签库,由apache实现 3.JSTL一般要配合EL表达式一起使用,因为在JSTL在赋值时会大量的使用EL,可以说EL是JSTL的一种辅助. 4.在使用时:JSTL需要引入:jstl.jar和Standart.jar到WEB_INF/lib目录下,但是只使用EL表达式不需要引用任何jar包,只要

JSTL和EL简介

EL Expression Language,表达式语言,通过操作存在于PageContext等的数据,实现JSP的编写更加简单,单纯使用EL不用引入jar包,只要容器支持即可. EL的隐含对象 EL基本使用 ${ld}相当于依次从pageScope-requestScope-sessionScope-applicationScope,查找ld的变量,如果有则返回其值,没有则返回null,当然如果确定变量位置,可以直接获取,例如${requestScope.ld}.除了上述隐含对象,EL把其它内

JS中也可以使用JSTL和EL标签

//往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Plist, i; el = document.getElementById('thelist'); var cancle = function(options) { var pattern = '${pageContext.request.contextPath}/integralParadise/u