• EL表达式


    一、EL表达式作用:

    1. 可以代替JSP中的Java代码,让JSP文件中的代码看起来整洁易读。

    二、步骤:

    (1)从某个中取数据,取之前必须要保证数据已经存进域里
    四大域:(pageContext仅jsp能使用,request,session,application)
    (2)将取出的数据转换成字符串(不是字符串调用toString转成字符串)
    (3)将字符串输出到浏览器

    三、取数据顺序:

    如果四个域中有同名数据,那默认从顺序:(从小到大)
    pageContext(仅jsp能使用)
    request
    session
    application

    四、语法:

    ${key}
    key后可跟.可跟[ ],一般跟. ,只有当key对象的属性名是abc.efg这种的,得用[ ](属性名abc.efg纯纯自找麻烦)

    1. 取域中的数据:
    <%=request.getAttribute("username") %>
    等价于:
    ${username}
    
    • 1
    • 2
    • 3
    1. 取域中对象的属性值:

    假设有java代码:

    //创建对象
    User user1 = new User();
    user.setName("zhangsan");
    user.setId("001");
    //对象存到域中
    request.setAttribute("u1",user1);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    则:

    <%=u1.getName()%>
    等价于:
    ${u1.name}使用这个语法的前提是User类中有getName()方法。
    等价于:
    ${u1["name"]}中括号要加双引号
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 取域中对象的属性值,属性是个对象:
    <%=u1.getObject().getName()%>
    等价于:
    ${u1.object.name}使用这个语法的前提是User类中有getObject()方法,Object类中有getName()方法。
    
    • 1
    • 2
    • 3
    1. 获取Map集合中的数据:

    假设有java代码:

    Map<String,String> map = new Map();
    Map.put("username","zhangsan");
    Map.put("password","123");
    request.serAttribute("a",map);
    
    • 1
    • 2
    • 3
    • 4

    则:

    ${a.username}//zhangsan
    ${a.password}//123
    
    • 1
    • 2
    1. 获取数组、list集合中的数据:

    假设有java代码:

    String[] s = {"abc","def"};
    request.setAttribute("a",s);
    
    • 1
    • 2

    则:

    ${a[0]}//abc
    $(a[1])//def
    
    • 1
    • 2
    1. 从指定域中取数据:
      若四个域中有同名数据,默认从小到大取,但又想取指定域的数据,可以用scope对象
    ${pageScope.data}
    ${requestScope.data}
    ${sessionScope.data}
    ${applicationScope.data}
    
    • 1
    • 2
    • 3
    • 4
    1. 获取JSP九大内置对象:
      因为EL表达式中只有pageContext对象,其余八大对象没有,所以在EL中其他八大对象可用pageContext的八个get方法获取
    <%= request.getContextPath()%>
    等同于:
    ${pagecontext.request.contextPath}
    
    • 1
    • 2
    • 3
    1. 隐含对象param获取用户提交的参数:
    浏览器URL:http://localhost:8080/xmm/index.jsp?username=lisi
    <%=request.getParameter("username")%>//lisi
    等同于:
    ${param.username}
    
    • 1
    • 2
    • 3
    • 4
    1. 隐含对象paramValues获取用户提交的参数:
    浏览器URL:http://localhost:8080/xmm/index.jsp?aihao=chouyan&aihao=hejiu
    <%=request.getParameterValues("爱好")%>//得到一个数组
    等同于:
    ${paramValues.aihao}
    获取数组中元素:
    ${paramValues.aihao[0]}
    ${paramValues.aihao[1]}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 隐含对象initParam获取xml文件应用域中存储的数据:
    <%=application.getInitParameter("pagesize")%>
    等同于:
    ${initParam.pagesize}
    
    • 1
    • 2
    • 3
    1. 运算符:
    ${10+"20"}//30,EL中不会进行字符串拼接,加号两边不是数字转数字,转不了报NumberFormatException错误。
    
    • 1
  • 相关阅读:
    【python基础】时间模块的time的下面的方法使用解析
    HTTP协议中Gzip格式的流量分析与识别
    【python】Algorithm
    前端技能树,面试复习第 50 天—— Vue3.0 基础 | Vue3 有什么更新 | Composition API
    10K涨到30K,5年大厂横跳,经验全在这两份Java面试精华总结里了
    [PAT练级笔记] 17 Basic Level 1017 A除以B
    react 也就这么回事 05 —— 组件 & Props
    如何用jxTMS开发一个功能(二)
    [附源码]SSM计算机毕业设计视屏网站论文JAVA
    【面向小白】深究模型大小和推理速度的关系!
  • 原文地址:https://blog.csdn.net/m0_53881899/article/details/126455639