zoukankan      html  css  js  c++  java
  • EL表达式

    1、语法:${变量/对象./对象['']}:看具体情况的使用
    2、.与[]的运算符
    普通情况下.与[]可以互换,但在包含特殊字符和纯数字的情况下就一定的使用[],例如${sessionScope.stundent[na-me]},动态取值的时候必须使用
    []。
    3、EL表达式取变量的顺序是:${userName}:先从page->request->session->application查找,如果查到则停止查询,查不到则返回""
    4、变量范围在EL表达式的名称
    page->pageScope    request->requestScope    session->sessionScope    application->applicationScope
    5、获取指定范围的EL
    ${pageScope.name} 从page范围中取出name变量
    ${requestScope.name}从request域中取出name变量
    ${sessionScope.name}从session域中取出name变量
    ${applicationScope.name}从application域中取出name变量

    例如:${sessionScope.name}等价于jsp中的session.getAttribute("name");
    6、自动类型转换
    EL表达式会根据实际情况进行类型转换,而jsp拿到的数据不会进行自动数据类型转换
    例如:
        jsp中获取表单参数,进行累加20
        String countString=request.getParameter("count");
        int count=Integer.ParseInt(countString);
        count+=20;
       
        EL中获取表单参数,进行累加20
        ${param.count+20}
    7、EL保留字,取名时要避免这些保留字
    and、eq、gt、true、not、lt、ge、null、instanceof、empty、div、mod
    8、EL的运算符
    /或div 除, %或mod 模, ==或= 等于, <或lt 小于, >或gt 大于,<=或le 小于或等于,  >=或ge 大于或等于, &&或and 逻辑与, ||或or 逻辑或
    !或nor 逻辑非,empty 检查是否为空字符串 ,  a?b:c 三元运算符 其他的与java一模一样
    9、EL中的运算符的基本用法
    ${1} 结果为1,${1 lt 2}或${1<2} false;其他的自己试
    10、EL内置对象
    pageContext:表示此jsp页面中的pageContext,表示此jsp页面所对应的上下对象,就包含了这9个内置对象
    pageScope:用来获取page范围属性名称所对应的值
    requestScope:用来获取request范围属性名称所对应的值,获取请求范围内的共享信息
    sessionScope:用来获取session范围属性名称所对应的值,获取会话范围内的共享信息
    applicationScope:用来获取application范围属性名称所对应的值,获取应用程序内的共享信息
    param:用来获取url单个参数值,返回类型为String类型
    paramValues:用来获取url参数值 ,返回String[]类型
    header:用来获取单个Http头信息,返回string类型
    headerValues:用来获取一组HTTP头信息,返回string[]类型
    cookie:获取cookie信息
    initParam:获取初始化参数值


    11、自定义函数调用Java中的静态方法

    java中的类
    package model;

    public class JiSuan {

        public static int add(int x,int y) {
            return x+y;
        }
    }


    TLD(TLD的建立,一般情况下都建立在WEB-INF文件夹中,右键->选择tld文件->打开tld中的Design-点开你创建的tld->点开function->
    右边点击add->添加一些 消息,name:静态方法名,function-class:对应类,function-Signature:方法的特征)

    <?xml version="1.0" encoding="UTF-8"?>
    <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
     <tlib-version>1.0</tlib-version>
     <short-name>SimpleTagLibrary</short-name>
     <function>
      <name>add</name><!-- 自定义函数 -->
      <function-class>model.JiSuan</function-class><!-- 函数属于哪个类的 -->
      <function-signature>
          int add(int,int)<!-- 调用哪个函数,分别的类型,参数 -->
      </function-signature>
     </function>
    </taglib>

    jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!-- prefix="my":对象名,uri="/WEB-INF/add.tld"地址 -->
    <%@ taglib prefix="my" uri="/WEB-INF/add.tld" %>
    <body>
        <form action="" method="get">
            <!--value="${param['x']}获取提交参数,x  -->
            x=<input type="text" name="x" value="${param['x']}" /><br>
            y=<input type="text" name="y" value="${param['y']}" /><br>
            <input type="submit" value="提交" />
        </form>
            <!-- ${my:add(param['x'],param['y']) }调用了JiSuan类的静态add方法 -->
            加法运算的结果是:${my:add(param['x'],param['y']) }
      </body>


    获取resquest域
       
    </head>
          <%
              Student student=new Student();
              student.setName("张三");
            request.setAttribute("stu", student);
         %>

      <body>
         ${stu.name}<br>
         <form action="MyJsp.jsp" method="get">
             <input type="text" name="txt" />
             <input type="submit" value="提交" />
         </form>
      </body>

    </head>
          <%
              Student student=new Student();
              student.setName("张三");
            request.setAttribute("stu", student);
         %>
         ${stu.name}<br>
        
         <form action="MyJsp.jsp" method="get">
             <input type="text" name="txt" />
             <input type="submit" value="提交" />
         </form>
      <body>
       
         
        
      </body>

  • 相关阅读:
    五、Docker网络管理
    四、Docker存储管理
    三、Docker镜像基础管理
    二、Docker容器基础管理
    模仿DotnetCore中间件的方式,做一个列表过滤的功能
    web开发常见的鉴权方式
    Go语言使用Godep进行包管理
    Go语言中的数据格式(json、xml 、msgpack、protobuf)
    epoll原理解释(转)
    内存管理之内存池概述(转)
  • 原文地址:https://www.cnblogs.com/danmao/p/3834881.html
Copyright © 2011-2022 走看看