Uso de expresiones EL

1. ¿Qué es una expresión EL y qué hace?

  • El nombre completo de la expresión EL es: Lenguaje de expresión [lenguaje de expresión]
  • ¿Cuál es el papel de la expresión EL? La expresión EL es principalmente reemplazar el script de expresión en la página jsp para generar los datos en la página jsp.
  • Debido a que las expresiones EL generan datos, son mucho más simples que los scripts de expresión jsp.
<body>
<%
request.setAttribute("key","值");
%>
表达式脚本输出 key 的值是:
<%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/>
EL 表达式输出 key 的值是:${key1}
</body>

Nota:
El formato de la ${表达式}expresión EL es: cuando la expresión EL genera un valor nulo, la salida es una cadena vacía.
Cuando el script de expresión jsp genera un valor nulo, genera una cadena nula.

Segundo, el orden de los datos del dominio de búsqueda de expresión EL

  1. Las expresiones EL principalmente generan datos en páginas jsp. Principalmente datos de salida en objetos de dominio.
  2. Cuando los cuatro campos tienen los mismos datos clave, la expresión EL buscará en el orden de los cuatro campos, de pequeño a grande, y la generará si se encuentra.
<body>
<%
//往四个域中都保存了相同的 key 的数据。
pageContext.setAttribute("key", "pageContext");
request.setAttribute("key", "request");
session.setAttribute("key", "session");
application.setAttribute("key", "application");
%>
${ key }
</body>

3. La expresión EL genera los atributos comunes del Bean y los atributos de la matriz. Atributo de colección de lista, atributo de colección de mapa

I. Atributos comunes de salida de demanda y atributos de matriz en la clase Persona. Atributo de colección de lista y atributo de colección de mapa.

public class Person {
//
i.需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。
private String name;
private String[] phones;
private List<String> cities;
private Map<String,Object> map;
//等等set,get,toString方法,不再一一赘述。
}
<body>

<%
Person person = new Person();
person.setName("张三啊");
person.setPhones(new String[]{"18610541354","18688886666","18699998888"});
List<String> cities = new ArrayList<String>();
cities.add("北京");
cities.add("上海");
cities.add("深圳");
person.setCities(cities);
Map<String,Object>map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
person.setMap(map);
pageContext.setAttribute("p", person);
%>

输出 Person:${ p }<br/>
输出 Person 的 name 属性:${p.name} <br>
输出 Person 的 pnones 数组属性值:${p.phones[2]} <br>
输出 Person 的 cities 集合中的元素值:${p.cities} <br>
输出 Person 的 List 集合中个别元素值:${p.cities[2]} <br>
输出 Person 的 Map 集合: ${p.map} <br>
输出 Person 的 Map 集合中某个 key 的值: ${p.map.key3} <br>
输出 Person 的 age 属性:${p.age} <br>

</body>

Cuarto, operación de expresión EL

Sintaxis :, la ${ 运算表达式 }expresión EL admite los siguientes operadores:

4.1 Operación relacional

Inserte la descripción de la imagen aquí

4.2 Operación lógica

Inserte la descripción de la imagen aquí

4.3 Operaciones aritméticas

Inserte la descripción de la imagen aquí

i, operación vacía

La operación vacía puede determinar si un dato está vacío, si está vacío, genera verdadero, y si no está vacío, genera falso.
Las siguientes situaciones están vacías:

  • Cuando el valor es nulo, está vacío.
  • Cuando el valor es una cadena vacía, está vacía
  • Cuando el valor es una matriz de tipo Object, la longitud es cero
  • Lista de colección, el número de elementos es cero
  • colección de mapas con cero elementos
<body>
<%
//1、值为 null 值的时候,为空
request.setAttribute("emptyNull", null);
//2、值为空串的时候,为空
request.setAttribute("emptyStr", "");
//3、值是 Object 类型数组,长度为零的时候
request.setAttribute("emptyArr", new Object[]{});
//4、list 集合,元素个数为零
List<String> list = new ArrayList<>();
//list.add("abc");
request.setAttribute("emptyList", list);
//5、map 集合,元素个数为零
Map<String,Object> map = new HashMap<String, Object>();
request.setAttribute("emptyMap", map);
%>
${ empty emptyNull } <br/>
${ empty emptyStr } <br/>
${ empty emptyArr } <br/>
${ empty emptyList } <br/>
${ empty emptyMap } <br/>
</body>

iii. "." Operación de punto y [] operador de soporte

.Operación de punto, puede generar el valor de una propiedad en el objeto Bean.
[]La operación de corchetes puede generar el valor de un elemento en un conjunto ordenado. Y la operación de corchete [], también puede generar el valor de la clave con caracteres especiales en la clave en la colección de mapas.

<body>
<%
Map<String,Object> map = new HashMap<String, Object>();
map.put("a.a.a", "aaaValue");
map.put("b+b+b", "bbbValue");
map.put("c-c-c", "cccValue");
request.setAttribute("map", map);
%>
${ map['a.a.a'] } <br>
${ map["b+b+b"] } <br>
${ map['c-c-c'] } <br>
</body>

Cinco, 11 objetos ocultos de expresión EL

Los 11 objetos ocultos en la expresión EL se autodefinen en la expresión EL y se pueden usar directamente.
Inserte la descripción de la imagen aquíi. EL obtiene atributos en cuatro dominios específicos
Inserte la descripción de la imagen aquí

<body>
<%
pageContext.setAttribute("key1", "pageContext1");
pageContext.setAttribute("key2", "pageContext2");
request.setAttribute("key2", "request");
session.setAttribute("key2", "session");
application.setAttribute("key2", "application");
%>
${ applicationScope.key2 }
</body>

Referencia: Shang Silicon Valley B Station Wang Zhenguo JavaWeb Video

Publicado 21 artículos originales · elogiado 29 · visitas 2820

Supongo que te gusta

Origin blog.csdn.net/VariatioZbw/article/details/105622085
Recomendado
Clasificación