jsp - guia - ¿El EL convierte/emite automáticamente el tipo? ¿Cómo funciona ${a.name} en realidad?
guia qgis (2)
Tengo una variable declarada como tipo Object a
que en realidad se refiere a una instancia de tipo A
En EL, puedo usar directamente la siguiente expresión para imprimir la propiedad del name
del tipo A
:
${a.name}
¿Como funciona?
EL usa la reflexión debajo de las capuchas, generalmente a través de javax.beans.Introspector
API .
Esto es lo que hace aproximadamente bajo las cubiertas de ${a.name}
.
// EL will breakdown the expression.
String base = "a";
String property = "name";
// Then EL will find the object and getter and invoke it.
Object object = pageContext.findAttribute(base);
String getter = "get" + property.substring(0, 1).toUpperCase() + property.substring(1);
Method method = object.getClass().getMethod(getter, new Class[0]);
Object result = method.invoke(object);
// Now EL will print it (only when not null).
out.println(result);
No convierte / emite el tipo de ninguna manera.
Ver también:
- Nuestra página wiki de EL
- Cómo acceder a objetos en lenguaje de expresiones EL $ $}
- Travesar a través de un objeto en Java