JavaWeb

JavaWeb,第1张

JavaWeb EL和JSTL核心技术

EL(expression Language表达式语言)表达式提供了在JSP中简化表达式的写法,可以方便地访问各种数据并输出

主要功能
  • 依次访问pageContext(当前页面中)、request(当前请求中有效)、session(当前会发中有效)和application(服务器中有效)作用域对象存储的数据。
  • 获取请求参数值。
  • 访问Bean对象的属性。
  • 访问集合中的数据。
  • 输出简单的运算结果。
访问内置对象的数据 访问方式
  • <%=request.getAttribute(“ varName”)%>
  • 用EL实现就是: ${ varName }
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
//pageContext.setAttribute("name1","pageContext对象中的值");
request.setAttribute("name2","request对象中的属性值:guanyu");//设置属性值

session.setAttribute("name3","session对象中的属性值:liubei");
application.setAttribute("name4","application对象中的属性值:zhaoyun");
%>
<%--使用JSP中原始方式获取数据和打印--%>
<%= "name2的数值为"+request.getAttribute("name2")%>
<%= "name3的数值为"+session.getAttribute("name3")%>
<%--使用EL表达式实现获取数据和打印--%> name2的数值为:${ name2 }
name3的数值为:${ name3 }
name4的数值为:${ name4 }

访问请求参数的数据

就是前台页面那边传过来的数据

  • 在EL之前使用下列方式访问请求参数的数据
request.getParameter(name);
request.getParameterValues(name);

在EL中使用下列方式访问请求参数的数据

  • param:接收的参数只有一个值。
  • paramValues:接受的参数有多个值
 
${param.name} 
 
${paramValues.hobby[0]}
用一下

写param.jsp为el_param.jsp传参

  • 用name传递参数,这个参数只有一个值
  • hobby有多个值
    param.jsp如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    实现一个简单页面负责向JSP页面传递参数





el_param.jsp如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    实现请求参数数值的获取


<%
    request.setCharacterEncoding("utf-8");//解决乱码
%>
<%--使用JSP语法中原始方式获取请求参数值--%>
<%--<%="姓名是:"+request.getParameter("name")%>
<%="爱好是:"+ Arrays.toString(request.getParameterValues("hobby"))%>
--%> <%--使用el表达式中的方式获取请求参数值--%> 姓名是:${param.name}
爱好是:${paramValues.hobby[0]}


el表达式访问Bean对象的属性

插曲:
遇到pageContext不能setAttribute,在pom.xml中引入依赖包坐标即可


    javax.servlet.jsp
    jsp-api
    2.2

就是访问成员变量值

访问方式

方式一: $ { 对象名 . 属性名 },例如:${user.name}
方式二: $ { 对象名 [“属性名”] },例如:${user[“name”]}

区别

当要存取的属性名中包含一些特殊字符,如: . 或 ,等并非字母或数字的符号,就一定要使用 [ ]而
不是.的方式
使用[]的方式可以动态取值,具体方式如下:

<% request.setAttribute(“prop”,“age”); %> ${ user[prop] }

在com.example.task_web目录下创建Person类
用el_bean.jsp文件实现Bean对象中属性的额获取和打印

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    实现Bean对象中属性的额获取和打印


<%
    Person person = new Person();
    person.setName("zhangfei");
    person.setAge(18);
    pageContext.setAttribute("person",person);
%>
<%--使用el表达式实现属性的获取和打印--%>
获取到的姓名是:${person.name}
获取到的年龄是:${person.age}
<%--另一种写法--%> ${person["name"]}
${person["age"]}

EL表达式访问集合中的数据
 
${student[0].name}
EL表达式常用的内置对象

常用的运算符和关系运算符

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5637192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存