EL表达式

EL表达式

EL(Expression Language 表达式语言)定义了一系列隐含对象和操作符,无须Java代码即可·方便地访问pageContext、request、session、application作用域中的对象。

1、EI表达式显示数据

1.1基本数据类型与String类型

<%
    request.setAttribute("score",11.0);
    request.setAttribute("name","Jim");
%>
成绩:${score}<br/>
姓名:${name}<br/>

1.2自定义类型

a、在页面中要显示的自定义类成员变量必须要有get方法;

b、显示方式${key.成员变量名}(key为setAttribute中的key)

例如:

ppublic class UserInfo {
	private String id;
	private String name;
	private String address;
	
	public UserInfo(String id, String name, String address) {
		this.id = id;
		this.name = name;
		this.address = address;
	}
	public String getId() {
		return id;
	}
	
	public String getName() {
		return name;
	}
	
	public String getAddress() {
		return address;
	}
	
}
//jsp代码如下
<%
    request.setAttribute("user",new UserInfo("111","AAA","China"));
%>
ID:${user.id}
Name:${user.name}
Address:${user.address}

1.3集合或数组

List

​
<%
    List<String> list = new ArrayList<String>();
    list.add("AAA");
    list.add("BBB");
    request.setAttribute("names",list);
%>
姓名:${names[0]}
<c:forEach var="name" items="${names}">
    姓名:${name}<br/>
</c:forEach>

​

数组

//Java代码
public class Student{
    private String name;
    public Student(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
}
​
<!--jsp代码-->
<%
    Student [] studentArray = (new Student("AAA"),new Student("BBB"));
    request.setAttribute("stuArray",studentArray);
%>
<!--输出单个-->
姓名:${stuArray[0].name}
<!--遍历数组-->
<c:forEach var="student" items="${stuArray}">
    姓名:${student.name}
</c:forEach>

​

Set集合:无法获取单个元素,但可以使用<c:Foreach></c:Foreach>遍历Set集合中元素。

Map集合

<%
    Map<String,String> teacherMap = new HashMap<String,String>();
    teacherMap.put("语文","李老师");
    teacherMap.put("数学","张老师");
    request.setAttribute("teachers",teacherMap);
%>
<!--输出单个-->
姓名:${teachers.语文}
姓名:${teachers['数学']}
姓名:${teachers["数学"]}
<!--遍历-->
<c:forEach var="teacher" items="${teachers}">
    姓名:${teachers.key}---------${teachers.value}
</c:forEach>

2、EL表达式中的运算符

1.1算术运算符

运算符号:+、-、*、/、或div(没有按照最高精度保留结果的特点)、%或mod

​
<!--两目运算-->
<%
    request.setAttribute("a",1);
    request.setAttribute("b",2);
%>
${a+b }<br/>
${a-b }<br/>
${a/b }<br/>
${a div b }<br/
${a%b }<br/>
${a mod b }<br/>
${a*b }<br/>
${a==b }<br/
<!--三目运算-->
${a==1?"相等":"不相等"}

​

1.2关系运算符

运算符号:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge


<%
    request.setAttribute("a",1);
    request.setAttribute("b",2);

    request.setAttribute("str1",qqq);
    request.setAttribute("str2",qqq);

    request.setAttribute("date1",new Student());
    request.setAttribute("date2",new Student());
%>
数值相等:${a==b}   ${a eq b}
字符串相等:${str1==str2}  ${str1 eq str2}
自定义类相等:${date1==date2}  ${date1 eq date2}
不等于:${a!=b}  ${a ne b}    
小于:${a<b}  ${a lt b}  
小于等于:${a<=b}  ${a le b}  
大于:${a>b}  ${a gt b}  
大于等于:${a>=b}  ${a ge b}  
​

​

​

1.3逻辑运算符

运算符符号:&&或and、||或or、!或not(注意:只能对boolean类型数据运算)

​

<%
    request.setAttribute("a",true);
    request.setAttribute("b",false);

%>
逻辑与:${a && b} ${a and b} 
逻辑或:${a || b} ${a or b} 
逻辑非:${!b} ${not b} 
​

​
​

​

​

1.4 empty运算符

说明:如果集合或数组中没有数据,或者其值为null,则empty判断为true,not empty判断为false

<%
    request.setAttribute("str1",null);
    request.setAttribute("str2","");
    List<String> list1 = new ArrayList<String>();
    request.setAttribute("list1",list1);
    List<String> list2 = new ArrayList<String>();
    list2.add("^^^^");
    request.setAttribute("list2",list2);
%>
字符串null:${empty str1}---------------${not empty str1}
字符串空:${empty str2}---------------${!empty str2}
集合没有数据:${empty list1}---------------${not empty list1}
集合有数据:${empty list2}---------------${! empty list2}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值