jsp EL表达式详解(4)

<%@ page language="java" contentType="text/html; charset=UTF-8" import="linjie.com.*" 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> <% Stu[] stus=new Stu[3]; stus[0]=new Stu("xlj","A"); stus[1]=new Stu("lucy","B"); stus[2]=new Stu("kingA","C"); pageContext.setAttribute("stus",stus); %> stus[1].Sname=${stus[1].sname } </body> </html>

客户浏览器显示结果

这里写图片描述

六、EL获取list中数据

<%@page import="java.util.*"%> <%@ 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> <% List<String> names=new ArrayList<String>(); names.add("xlj"); names.add("lucy"); pageContext.setAttribute("names", names); %> <!-- 因为List底层是数组,所以可以这样写 --> names[1]=${names[1] }<br> </body> </html>

客户浏览器显示结果

这里写图片描述

注意:

EL可以通过索引访问List,但无法访问Set。因为Set中没有索引概念

七、EL访问Map

<%@page import="java.util.*"%> <%@ 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> <% Map<String,Object> map=new HashMap<String,Object>(); map.put("age", 20); map.put("name", "xlj"); pageContext.setAttribute("map", map); %> name=${map.name }<br> age=${map.age }<br> </body> </html>

客户浏览器显示结果

这里写图片描述

八、EL中的运算符(empty) 1、先说说几个常用运算符

算术运算符:+、-、*、/、%(不支持++、–)

关系运算符:==、!=、>、>=、<、<=

逻辑运算符:!、&&、||、not、and、or

条件运算符:?:

取值运算符:[]、点号

2、empty运算符

用法为${empty 变量},结果为布尔值

<%@page import="java.util.*"%> <%@ 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> <% String name1=null; String name2=""; List<String> name3=new ArrayList<String>(); pageContext.setAttribute("name1", name1); pageContext.setAttribute("name2", name2); pageContext.setAttribute("name3", name3); %> empty对于没有定义的变量,运算结果为true: empty namex=${empty namex }<br> empty对于null的引用,运算结果为true: empty name1=${empty name1 }<br> empty对于为空串的String引用,运算结果为true: empty name2=${empty name2 }<br> empty对于没有元素的数组或集合,运算结果为true: empty name3=${empty name3 }<br> </body> </html>

客户浏览器显示结果

这里写图片描述

九、自定义EL函数

因为EL本身不具有处理字符串能力,所以可以自定义EL函数
- 定义函数(新建MyEL.java类)
- 注册:先找到jsp2-example-taglib.tld,将头部以及注册函数复制到自己创建的.tld文件中(.tld放在WEB-INF下)
- 在index.jsp中使用,使用时需要<%@ taglib uri=”” prefix=”MyEL” %>

1、定义函数MyEL.java

package linjie.com; //自定义函数 //该类及其函数,需要在扩展名为.tld的xml文件中注册 //tld:tag library definition(标签库定义) //xml文件是需要约束的,即需要配置文件头部。这个头部约束可以从一下文件中进行复制 //在Tomcat安装目录下:webapps\examples\WEB-INF\jsp2 //文件为:jsp2-example-taglib.tld //这个.tld的xml文件,需要定义在当前web项目的WEB-INF目录下,在此目录下创建以.tld结尾的xml文件 //将jsp2-example-taglib.tld中头部复制到创建的xml文件中 //再将函数注册,还是在jsp2-example-taglib.tld底部中复制 public class MyEL { private static MyEL instance; public static MyEL getInstance() { if(instance==null) { instance=new MyEL(); } return instance; } //字符串小写变大写 public static String LowerToUpper(String str) { return str.toUpperCase(); } }

2、将jsp2-example-taglib.tld中头部部分以及底部的注册函数部分复制到自己创建的tld(在WEB-INF下)文件中

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

MyEL.tld

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsgyyp.html