[java][EL、JSTL、OGNL]:总结及区别

2018-11-20  本文已影响18人  阿不不不不

EL表达式:表达式语言

不是一种开发语言,是jsp中获取数据的一种规范

例如:
<!--jsp 脚本-->
<%
User u = (User)pageContext.getAttribute("u");
%>
<!--EL表达式-->
${u}
EL的具体功能
1、获取数据
EL表达式只能获取存在4个作用域中的数据
${u} 原理: pageContext.getAttribute("u");
------------------------------------------------------
例如:
在浏览器地址输入,表示传入一个参数test,值为123

URL:http://localhost:8888/Test/index.jsp?test=123
 <body>
    ${test}
    ${requestScope.test}  
    <%request.getAttribute("test"); %>
</body>
以上代码均不能取出值
仅当 使用
<%
    request.setAttribute("test", "123");
 %>
赋值时<body/>内可以正常取出值
那么如何取出URL 中的test 的值呢?如下
  <body>
    ${param.test}
    <%=request.getParameter("test") %>
</body>
均可取出URL中的test的值。。
结论:
${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获取的内容。

${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。

formData里的数据也是parameter的一部分
------------------------------------------------------
${u.name} == u.getName()方法
点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。
<!--jsp 脚本-->
<%
User u = (User)request.getAttribute("u");
out.print(u.getName());
%>
<!--EL表达式-->
${u.name}
------------------------------------------------------
属性导航
[]运算符:点能做的,它也能做; 它能做的,点不一定能做
${student.name}== ${student['name']} == ${student["name"]}

2、运算
empty 
判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true

Snip20181120_3.png

三目运算


Snip20181120_4.png

JSTL

作用

使用JSTL实现JSP页面中逻辑处理。如判断、循环等。

1)在JSP页面添加taglib指令

<%@ taglib uri = "http://java.sun.com/sp/jstl/core" prefix="c"%>

2)使用JSTL标签

<c:if test=""></c:if>
标签库
Snip20181120_5.png Snip20181120_6.png Snip20181120_7.png

struts2中的标签类似JSTL

OGNL

1.取根中对象的属性,不使用#。
2.取contextMap中key的值,要使用#。


Snip20181120_8.png
Snip20181120_9.png
上一篇下一篇

猜你喜欢

热点阅读