各种标签表达式集合

来源:互联网 发布:张辽和关羽谁厉害知乎 编辑:程序博客网 时间:2024/06/06 18:13

1、EL表达式

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。

假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。

< %=request. getParameter(“username”)% > 等价于 ${ param. username }

<%=request.getAttribute(“userlist”) %> 等价于$ { requestScope.userlist }

2、EL表达式与OGNL表达式的区别

  EL表达式

单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.

如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值

特点:

${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取。

在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有name这个全局变量

:${#name},里面的是不带#号的

如果放在对象栈中的是一个自定义的对象,那么${property}里面可以直接去该对象的属性值

 

OGNL表达式:

读取从后台传递的值

%{#name}:表示从值栈的map中取值

%{name}:表示从值栈的对象栈中取值

%{#request.name}:表示从request域中取值


3、Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
1. 支持对象方法调用,如xxx.doSomeSpecial();
2. 支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME;
3. 支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;
4. 访问OGNL上下文(OGNL context)和ActionContext;
5. 操作集合对象。


3、JSP 标准标记库(JSTL)

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



0 0