jsp---EL知识的简单总结

一、知识点

el.jsp

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

<!--使用传统方式获取作用域对象的数据--!>

 <h3>EL表达式学习,使用传统方式获取作用域对象的数据</h3>

 <b><%=request.getParameter("uname")%></b>

 <b><%=request.getAttribute("user").getAddr().getTown() %></b><br>

 <b><%= ((ArrayList)  request.getAttribute("list")).get(2) %></b><br/>

 

 

 

   传统方式获取作用域数据:

     缺点:导入包

           需要强制转化

   获取数据的代码过于麻烦

  使用EL表达式获取作用域数据

    作用:获取作用域中的对象的数据

  注意:获取的是pagecontext request session application 四个对象中的数据 其他数据一概不理会

     找到了则获取返回  找不到则什么也不做,也不报错

 

 

    表达式:

  request对象存储了请求数据---->param.键名

  request对象存储了请求数据----paramValues.键名 返回的是数组

 

通过setAttribute方法存储的作用域对象中的数据

  ${键名}返回键名所对应的值

    注意:

  如果存储的是普通字符则直接返回

   如果存储的是对象,则返回的是对象

       获取对象中的数据

      普通对象

    ${键名.属性名}

集合对象:

list对象   ---->${键名[角标]}

map集合 --->${键名.map集合存储的键名}

 

 

 

<% String str2="呵呵呵"%>

<!--使用el表达式获取作用域对象的数据--!>

<h3>EL表达式学习</h3>

<b>${param.uname}</b><br/>

<b>${paramValues.fav[0]}</b><br/>

//相当于地址栏传参

<b>${str}</b><br/>

<b>${user.addr.town}</b><br/>

<b>${list[2]}</b><br/>

<b>${map.c}</b><br/>

<b>${map.a1.addr.city}</b><br/>

 

  查找顺序

    pageContext--->request---->session---->application

注意:

  每次查找都是从小到大进行查找,找到了则获取,不再继续找了。

 

 

  指定查找:

    ${pageScope.键名}----${requestScope.键名}--${sessionScope.键名}----${applicationScope.键名}

${1+2}-----${1*2}-----${sex==1?'男':'女'}---${1+"2"}

 

 

EL请求头数据和cookie数据

${header}---${headerValues}

EL请求获取头数据和cookie数据

  ${header}--->返回所有的请求头数据

  ${header["键名"]}--->返回指定的键名的请求头数据

  ${headerValues["键名"]}------>返回指定的键名(同键不同值)的值的数组

 获取Cookie数据

  ${cookie}---->返回存储所有的cookie对象的集合

  ${cookie.键名}----返回指定的cookie对象

  ${cookie.键名.Cookie存储数据的键名}-----返回指定的cookie对象存储的数据值

 二、实现

结构图

<%@ page language="java" contentType="text/html; charset=utf-8" import="test.Student"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<% Student student=new Student(18,"扬弟弟","123456");
     pageContext.setAttribute("student", student) ;
%>
userInformation=${student.uname }<br/>

</body>
</html>

 Student类

package test;

public class Student {
	private int age;
	private String uname;
	private String pwd;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public Student(int age, String uname, String pwd) {
		super();
		this.age = age;
		this.uname = uname;
		this.pwd = pwd;
	}
	

}

 实现结果:

userInformation=扬弟弟

二、通过另一个页面来获取参数

   

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
 <form action="${pageContext.request.contextPath}/show.jsp"  method="POST"> 
  姓名:<input type="text" name="name">
 密码 :<input type="text" name="password">
   <input type="submit"  value="注册">
   爱好:<input type="checkbox" name="hobby" value="swimming"/> 游泳
     <input type="checkbox" name="hobby" value="clibming"> 爬山
      <input type="checkbox" name="hobby" value="reading">阅读
 </form>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
 name=${param.name}<br>
  password=${param.password} <br>
   hobby[0]=${paramValues.hobby[0] }<br>
   hobby[1]=${paramValues.hobby[1] }<br>
</body>
</html>

     实现结果:

 

三、自定义函数

一、目标函数

 

package test;

public class LowerToUpper {
  public static String FLowerToUpper(String  data )
  {
	     return data.toUpperCase();
  }



}

二、在tld内注册

<?xml version="1.0" encoding="ISO-8859-1"?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>myshortname</short-name>
    <uri>http://mycompany.com</uri>

    <!-- Invoke 'Generate' action to add tags or functions -->
    <function>
      <name>myLowerToUpper</name>
        <function-class>test.LowerToUpper</function-class>
        <function-signature>java.lang.String FLowerToUpper(java.lang.String)</function-signature>            
    </function>

</taglib>

三、在jsp页面使用

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://mycompany.com" prefix="myshortname"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
  ${myshortname:myLowerToUpper("abc") }
</body>
</html>

实现结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值