0
点赞
收藏
分享

微信扫一扫

el表达式_JSP之el表达式


  el表达式

  el: jsp的内置表达式语言,从jsp2.0开始,用来替代

  作用:

  1.获取域中数据 ★

  2.执行运算 ★

  3.获取常见的web对象

  4.调用java的方法

  格式:

  ${el表达式}

  获取域中数据:★

  注意:★

  若属性名中出现了"."|"+"|"-"等特殊符号,需要使用scope获取

  例如:

  ${requestScope["arr.age"] }

  获取简单数据

  ${pageScope|requestScope|sessionScope|applicationScope.属性名}

  以后经常使用:

  ${属性名}:依次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找

  若查找不到,返回""

  获取复杂数据

  获取数组中的数据: ${域中的名称[index]}

  获取list中的数据: ${域中的名称[index]}

  获取map中的数据: ${域中的名称.键名}

  案例1--el获取域中简单数据

  demo1.jsp

  pageEncoding="utf-8"%>


el获取域中简单数据

  request.setAttribute("rkey", "rvalue");

  session.setAttribute("rkey", "svalue");

  session.setAttribute("skey", "svalue");

  application.setAttribute("akey", "avalue");

  %>

  获取request中的数据:

  老方式:

  el方式:${requestScope.rkey }

  获取session中的数据:

  老方式:

  el方式:${sessionScope.skey }

  获取application中的数据:

  老方式:

  el方式:${applicationScope.akey }

  获取application数据失败:

  老方式失败:

  el方式失败:${applicationScope.aakey }

  便捷获取:

  ${rkey },${skey },${akey },${aakey }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_servlet

  案例2--el获取域中复杂数据

  pageEncoding="utf-8"%>


el获取域中复杂数据

  //往request域中放入数组

  request.setAttribute("arr", new String[]{"aa","bb","cc"});

  //往request域中放入list中

  List list=new ArrayList();

  list.add(111);

  list.add(222);

  list.add(333);

  request.setAttribute("list", list);

  //往request域中放入map集合中

  Map map=new HashMap();

  map.put("username","hjh");

  map.put("password","12345");

  request.setAttribute("map", map);

  request.setAttribute("user-age", "999");

  %>

  获取域中的数组:

  老方式:

  el方式:${arr[1] }

  获取域中的list:

  老方式:

  el方式:${list[1] }

  list的长度:${list.size() }

  获取域中的map:

  老方式:

  el方式:${map.username }

  获取特殊名字的数据 :

  ${requestScope["user-age"] }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_mybatis_02

  javabean导航

  javabean:

  java语言编写的一个可重用的组件,

  狭义上来说就是我们编写的一个普通的java类 例如:User Person

  javabean规范:

  1.必须是一个公共的具体的类 public class

  2.提供私有的字段 private String id;//id称之为字段

  3.提供公共访问字段的方法 get|set|is方法

  public String getId(){..}

  一旦有公共的方法之后,get|set|is之后的内容,将首字母小写,将这个东西称之为bean属性

  id就是一个bean属性

  4.提供一个无参的构造器

  5.一般实现序列化接口 serializable

  ${域中javabean名称.bean属性}

  案例--javabean

  user.java

  package com.hjh.javabean;

  public class User {

  private String id;

  private String username;

  private String password;

  public User() {}

  public User(String id,String username,String password) {

  this.id= id;

  this.username= username;

  this.password= password;

  }

  public String getId() {

  return id;

  }

  public void setId(String id) {

  this.id= id;

  }

  public String getName() {

  return username;

  }

  public void setName(String username) {

  this.username=username;

  }

  public String getPassword() {

  return password;

  }

  public void setPassword(String password) {

  this.password= password;

  }

  @Override

  public String toString() {

  return "User [id=" + id + ", username=" + username + ", password=" + password + "]";

  }

  }

  javabean.jsp

  pageEncoding="utf-8"%>


javabean

  User user=new User();

  user.setId("001");

  user.setName("hjh");//name为javabean属性,而非username

  user.setPassword("12345");

  request.setAttribute("user",user);

  %>

  获取域中javabean的id值:

  老方式:

  el方式:${user.id }

  el获取name:

  正确演示:${user.name }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_开发语言_03

  加入以下代码,程序报错,应为user类中并没有提供getUsername()、setUsername()方法:

  错误演示:${user.username}

  错误信息如下:

  

el表达式_JSP之el表达式_java_04

  el执行运算:

  四则运算 关系(>..) 逻辑(&& ||)

  注意:

  +:只能进行加法运算,字符串形式数字可以进行加法运算.

  数字+数字字符串=数字

  数字字符串+数字字符串 报错

  empty:判断一个容器的长度是否为0(array set list map),还可以判断一个对象是否为空

  ${empty 域中的对象名称}

  三元运算符

  案例1--el加法运算:

  pageEncoding="utf-8"%>


el加法运算

  request.setAttribute("a", 11);

  request.setAttribute("b", 22);

  request.setAttribute("c", "33");

  request.setAttribute("d", "kkk");

  %>

  数字+数字:${a+b }

  数字+数字字符串:${a+c }

  数字字符串+数字字符串:${c+c }

  数字+字母字符串:${a+d}

  数字字符串+字母字符串:${c+d }

  字母字符串+字母字符串:${d+d }

  案例2--el判断长度empty:

  empty1.jsp

  pageEncoding="utf-8"%>


empty判断长度是否为0

  List list1=null;

  request.setAttribute("list1", list1);

  List list2 =new ArrayList();

  list2.add(1234);

  request.setAttribute("list2", list2);

  %>

  request域中lis:1的长度是否为0:${empty list1 }

  request域中list2的长度是否为0:${empty list2 }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_开发语言_05

  案例3--el判断对象是否为empty:

  empty2.jsp:

  pageEncoding="utf-8"%>


empty判断对象是否为0

  User user1 =null;

  request.setAttribute("user1", user1);

  User user2 =new User();

  request.setAttribute("user2", user2);

  %>

  request域中javabean对象的长度是否为0:${empty user1 }

  request域中javabean对象的长度是否为0:${empty user2 }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_开发语言_06

  案例3--el三元运算符:

  demo3.jsp

  pageEncoding="utf-8"%>


el获取域中简单数据

  int i=3;

  %>

  ${3>4?"yes":"no" }

  ${i==3?"yes":"no" }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_mybatis_07

  el的内置对象(了解):

  11个

  pageScope

  requestScope

  sessionScope

  applicationScope

  param

  paramValues

  header

  haederValues

  initParam

  cookie★

  pageContext★

  注意:

  除了pagecontext其余对象获取的全是map集合

  了解:和参数相关的el内置对象

  param

  paramValues

  案例:

  pageEncoding="utf-8"%>


el内置对象param&paramValues

  ${param.username }

  ${param }

  ${paramValues }

  ${paramValues.hobby[0] }

​​  http://localhost:8080/Jsp/el/param?username=hjh&password=12345&hobby=eat&hobby=sport​​

  

el表达式_JSP之el表达式_开发语言_08

  了解:和请求头相关的el内置对象

  header

  haederValues

  案例:

  header.jsp

  pageEncoding="utf-8"%>


el内置对象header&headerValues

  header:${header }

  headerValues:${headerValues }

  referer:${header.referer }

  user-agent:${headerValues["user-agent"][0] }

  启动tomcat,输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_tomcat_09

  了解:和全局初始化参数相关的el内置对象

  initParam

  web.xml

  

  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"

  version="3.1">

   encoding

   utf-8

  initParam.jsp

  pageEncoding="utf-8"%>


el获取域中简单数据

  ${initParam }

  启动tomcat,浏览器中输入以下url,回车,页面显示如下:

  

el表达式_JSP之el表达式_servlet_10

  cookie内置对象:

  ${cookie} 获取map{key=Cookie}

  例如:创建cookie

  Cookie c=new Cookie("username","tom");

  通过${cookie}获取相当于

  {username=new Cookie("username","tom")}

  相当于map的key是cookie的键

  map的value是当前cookie

  若项获取名称username的cookie的value值(获取tom)

  ${cookie.username.value}--javabean导航

  注意:

  java中Cookie的api

  getName():获取cookie的名称

  getValue():获取cookie的value值

  我们称name和value是cookie的bean属性

  使用cookie内置对象:

  ${cookie.给cookie起名字.value}

  例如:

  获取jsession的值

  ${cookie.JSESSIONID.value}

  cookie.jsp

  pageEncoding="utf-8"%>


el加法运算

  ${cookie.JSESSIONID.value }

  浏览器显示如下:

  

el表达式_JSP之el表达式_java_11

  pageContext:获取不是map集合,相当于jsp的pageContext内置对象

  在jsp页面中获取项目名

  ${pageContext.request.contextPath}

  pageContext.jsp

  pageEncoding="utf-8"%>


el加法运算

  ​​点击跳转到text.jsp​​

  启动comcat,访问以下url,显示一个超链接,如下图:

  

el表达式_JSP之el表达式_开发语言_12

  点击超链接,页面跳转到text.jsp页面,url随之改变:

  

el表达式_JSP之el表达式_mybatis_13

举报

相关推荐

0 条评论