Java_EL表达式

将数据显示到JSP页面(HTML页面中不可)中有三种方法:

Java代码、EL表达式、JSTL表达式

 

EL表达式

1  EL表达式显示数据

1.1   基本数据类型与String类型

//Servlet.java文件下
<%
    request.setAttribute("score",100);
    reqeest.setAttribute("name" ,"ncqnb" )
%>
//JSP文件下
成绩:${score }<br/>
姓名:${name  }<br/>

1.2  自定义类类型

    (1) 在页面中要显示的自定义类成员变量必须要有get方法

    (2) 显示:${key (setAttribute中的key).成员变量名}

1.3 集合与数组

  • List与Set集合
//Servlet文件下
<%
    List<String> nameList = new ArrayList<String>();
    nameList.add("唐僧");
    nameList.add("孙悟空");
    request.setAttribute("names",nameList);
%>
//jsp文件下
<!-- 输出单个 -->
姓名:${names[0]}<br/>
<!-- 遍历集合 -->
<c:forEach var="name" items="${names}">
    姓名:${name}<br/>
</c:forEach>
  • 数组
//定义Student类
public class Student{
    private String name;
    public Student(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
}

//Setvlet文件下
Student[] stuArray = {new Student("唐僧"),new Student("悟空")};
request.setAttribute("stuArray",stuArray);

//jsp文件下
<!-- 输出单个 -->
姓名:${stuArray[0].name}<br/>
<!-- 遍历数组 -->
<c:forEach var="student" items="${stuArray}">
    姓名:${student.name}<br/>
</c:forEach>
  • Map集合
//在Servlet文件下
Map<String,String> teacherMap = new HashMap<String,String>();
teacherMap.put("语文","白老师");
teacherMap.put("数学","李老师");
request.setAttribute("teachers",teacherMap);

//在jsp文件下
<!-- 输出单个 -->
姓名:${teachers.语文}<br/>
姓名:${teachers['数学']}<br/>
姓名:${teachers["数学"]}<br/>

<!-- 遍历Map -->
<c:forEach var="teacher" items="${teachers}">
    姓名:${teacher.key}:${teacher.value}<br/>
</c:forEach>

Tips:

1、Map集合的key最好符合Java标识符规范,如果不符合,则在EL表达式中不能使用.的方式获取到Map相应的value,只能通过[]的方式获取到相应的value

2、Map集合key的泛型不能是Java基本数据类型的包装类,否则EL表达式无论使用那种方式都无法获取到相应的value

 

2  EL表达式中的运算符

1.1  算术运算符

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

三目运算符:${a==1?"相等":"不相等"}    tip: 单引号和双引号都可以

//jsp文件下
<input type="radio" name="gender" value="0" ${genderType==0?'checked':''}>女
<input type="radio" name="gender" value="1" ${genderType==1?'checked':''}>男

<select name="grade">
    <option value="0" ${gradeValue=0?'selected':''}>--请选择--</option>
    <option value="1" ${gradeValue=1?'selected':''}>一年级</option>
    <option value="2" ${gradeValue=2?'selected':''}>二年级</option>    
    <option value="3" ${gradeValue=3?'selected':''}>三年级</option>

1.2  关系运算符

运算符符号:==或eq

                      !=或ne

                      <或lt(即less than)

                      >或gt(即great than)

                      <= 或 le

                       >= 或 ge

1.3  逻辑运算符

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

1.4   empty运算符

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

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值