EL表达式的使用

来源:互联网 发布:python 最优化工具包 编辑:程序博客网 时间:2024/05/21 21:35

EL表达式的使用


(1)什么是el表达式

        是一套简单的运算规则,用于给jsp标签的属性赋值,也可以直接输出。

(2)el表达式的使用 

    1)访问bean的属性

        a.方式一   day10_2.e3.jsp                   

            ${user.name} :

              容器会依次从pageContext,request,session,application中查找(getAttribute)绑订名称为"user"的对象,找到该对象之后,会调用该对象的"getName"方法,最后输出。          

              注:
                a1. 会将null转换成""输出。

                a2.找不到该对象,不报空指针异常,会输出""。

                a3.可以使用pageScope,requestScope,sessionScope,application来指定查找范围。

    day10_2.e3.jsp 代码:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %><%@page import="bean.*" %><html><head></head><body><%User user = new User();user.setName("zs");user.setAge(22);request.setAttribute("user",user);User user1 = new User();user1.setName("wangwu");user1.setAge(24);session.setAttribute("user",user1);%>name:<%//User user1 = (User)request.getAttribute("user");//out.println(user1.getName());%><br>姓名:${user.name}<br>session上的 姓名:${sessionScope.user.name }</body></html>

bean.User.java代码:

package bean;public class User {private String name;private int age;private String[] interest;public String[] getInterest() {return interest;}public void setInterest(String[] interest) {this.interest = interest;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}


        b.方式二   day10_2.e4.jsp

            ${user["name"]} / ${user['name']}
              注:

                b1.[]里面可以出现绑订名(变量)。

                b2.[]里面可以出现从0开始的下标,用于访问数组中的某个元素。${user.interest[1] }(interest为数组)

      day10_2.e4.jsp 代码:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %><%@page import="bean.*" %><html><head></head><body><%User user = new User();user.setName("zhangs");user.setAge(22);user.setInterest(new String[]{"台球","足球","篮球"});request.setAttribute("user",user);User user1 = new User();user1.setName("wangw");user1.setAge(24);session.setAttribute("user",user1);%>name:${user["name"] }<br/><%request.setAttribute("propname","age");%><!-- []里面可以出现绑订名(变量) -->年龄:${user[propname] }<br/><!-- []里面可以出现从0开始的下标,用于访问数组中的某个元素 -->兴趣爱好:${user.interest[1] }<br/></body></html>


    2)进行一些简单的运算

       运算的结果可以给jsp标签的属性赋值,也可以直接输出(e5.jsp)。

        a.算术运算  +,-,*,/,%

            注:  +号只能求和(不能连接字符串)。

        b.关系运算  >,>=,<,<=,==,!=

        c.逻辑运算 && || !

        d.empty运算   

            判断集合是否为空或者是否是一个空字符串。是,返回true。

            以下四种情况都是true,其他都是false:

            d1,空字符串

            d2,空的集合(集合中没有任何元素)

            d3,null

            d4,找不到值

     e5.jsp代码示例:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %><%@page import="java.util.*" %><html><head></head><body><!-- 算术运算  +,-,*,/,% --><!-- +号只能求和(不能连接字符串) -->1+2=${1+2 }<br/>100+200=${"100"+"200" }<br/><!-- 关系运算  >,>=,<,<=,==,!= --><!-- 结果都是true/false -->1>0?${1>0 }<br/><%request.setAttribute("str1","abc");request.setAttribute("str2","abcd");%>${str1 == str2 }<br/>${str1 == "abc"}<br/>${sessionScope.str1 == "abc" }<br/><!-- 逻辑运算 && || !  --><!-- empty运算  结果为true/false--><!-- 判断集合是否为空或者是否是一个空字符串;是,返回true --><%request.setAttribute("str3","");%>空字符串:${empty str3 }<br/><%List list = new ArrayList();//list.add("");request.setAttribute("list",list);%>空的集合:${empty list }<br/><%request.setAttribute("obj",null);%>值为null:${empty obj}<br/>找不到值:${empty sss }<br/></body></html>


    3)读取请求参数值 (e6.jsp)

        a. ${param.username}    等价于request.getParameter("username");

        b.${paramValues.city}    等价于request.getParamterValues("city");


     e6.jsp示例代码:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %><html><head></head><body>username:${param.username }<br/>interest:${paramValues.i [1] }<br/></body></html>







       
0 0
原创粉丝点击