guia jsp javabeans el evaluation

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?


Es porque el name es una propiedad del objeto a , y probablemente el objeto también es un JavaBean (que no debe confundirse con Enterprise JavaBean).

Consulte aquí la documentación del lenguaje de expresión y aquí un breve tutorial.


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: