EL(Expression Language)表达式

eg:上一个页面:      <%    <--创建一个对象-->Student stu = new Student();    stu.setName("zk");     

                                <--把stu对象放在request对象中--> request.setAttribute("s",stu);

                                <--请求转发-->    request.getRequestDispatcher("/next.jsp").forward(request,response);

    %>

下一个页面:    <%    Student stu = (Student) request.getAttribute("s");    

                                  out.print(stu.getName());

%>

如果用EL表达式,则        ${s.name}即可        .name是getName()方法——属性导航(反射)


具体功能:

a.    获取数据 :EL表达式只能获取存在4个作用域中的数据

${u}    原理: pageContext.findAttribute("u");

EL获取对于Null这样的数据,在页面中表现为空字符串

${u.name} =u.getName()方法    .运算符相当于调用了getter方法,后面跟的属性名。

[]运算符:点能做的,它也能做;它能做得,点不一定能做

${u.name}==${u['name']}==${u["name"]}

比如,我们用ArrayList或者HashMap存值        request.setAttribute("list",list);    ${list[0]}    只能这样取值

b.    运算

empty判断EL表达式内元素是否为空

String str="";    request.setAttribute("str",str);

${empty str}    <br/>            ----返回值为true

三目运算符

${ empty 判断句?true为前面表达式:false为后面表达式}


<%    pageContext.setAttribute("s",1)%>;

<input type="radio"    name="sex"    ${s==1?"checked='checked'":""}    />男

<input type="radio"    name="sex"    ${s==0?"checked='checked'":""}    />女

<--前面输入类型为单选按钮,若为表达式则选中输出-->

c. 隐式对象

EL隐式对象引用名称                                类型                            JSP内置对象名称                说明

pageContext                      java.servlet.jsp.PageContext        pageContext                    一样的

pageScope                        java.util.Map<String,Object>        没有对应的            pageContext范围中存放的数据页面范围

requestScope                    java.util.Map<String,Object>        。。。                   请求范围数据

sessionScope                    java.util.Map<String,Object>        。。。                     会话范围数据

applicationScope              java.util.Map<String,Object>        。。。                     应用范围数据

param                               java.util.Map<String,String>        。。。                     一个请求参数

paramValues                     java.util.Map<String,String[]>        。。。                     重名请求参数

header                              java.util.Map<String,String>        。。。                     一个请求消息头

headerValues                     java.util.Map<String,String[]>        。。。                     重名请求消息头

initparam                         java.util.Map<String,String>        。。。                 web.xml中全局参数

cookie                             java.util.Map<String,Cookie>        。。。                     key.cookie对象的name


eg:

${param.userName}<--    ${param.userName}==request.getParamemter("userName")     -->

获取页面路径:<form action ="${pageContext.request.contextPath} / sucess.jsp" method="post">user、pwd</form>



猜你喜欢

转载自blog.csdn.net/zkkzpp258/article/details/79627399