OGNL
Object-Graph Navigation Language (OGNL), creado por OGNL Technology, es un Lenguaje de Expresiones de código abierto para Java, el cual, mediante el uso de expresiones más simples que el amplio espectro que soporta Java, permite obtener y establecer propiedades (a través de métodos ya definidos getProperty y setProperty similares a los presentes en todos los JavaBeans) y la ejecución de métodos de clases Java.
OGNL | ||
---|---|---|
Parte de Apache Commons | ||
Información general | ||
Tipo de programa | Lenguaje de expresión (EL) | |
Desarrollador | OGNL Technology | |
Licencia | licencia BSD | |
Idiomas | inglés | |
Información técnica | ||
Programado en | Java, C# | |
Plataformas admitidas | Java Virtual Machine, .NET | |
Versiones | ||
Última versión estable | 3.0.8 ( 24 de septiembre de 2013 (11 años, 2 meses y 19 días)) | |
Enlaces | ||
Aplicaciones
editarAlgunas de las ventajas de OGNL sobre Java son:
- Las transformaciones entre tipos son más sencillas.
- Es un lenguaje de fuente de datos útil para mapear columnas de una tabla con su TableModel en Swing.
- Es un sustituto del lenguaje de obtención de propiedades usado en el paquete BeanUtils.
Cadenas (chains)
editarSon la unidad fundamental de navegación. [Pueden contener:
- Nombres de propiedades.
encabezado.texto
- Llamadas a métodos.
hashCode()
- Índices de Array.
listeners[0]
Ejemplo:
name.toCharArray()[0].numericValue.toString()
Se pasa a String la propiedad "name" de la que se toma el carácter de la posición 0 y se obtiene su valor numérico que se pasa a String nuevamente.
Proyectos que usan OGNL
editar- WebWork
- Struts 2 (sucesor del anterior)
- Tapestry
- Spring Web Flow
- Apache Click
- NReco (.NET integration framework for lightweight MDD)
- op4j (extensión op4j-ognl) - implementación de interfaz fluida de Java.
- MyBatis - framework de mapeo SQL
- The Thymeleaf Template Engine - motor de plantillas Java XML/XHTML/HTML5
- Unitils - marco (framework) de testeo modular para Java
Enlaces externos
editar- (en inglés) Página principal de OGNL
- (en inglés) WebWork (usando OGNL)