2011-01-11 20 views
9

Mi chiedevo che cosa esattamente si trasferisce primavera da usare primavera EL oltre OGNL nel suo prodotto di flusso web:Benefici dell'utilizzo di Spring EL su OGNL?

http://static.springsource.org/spring-webflow/docs/2.2.x/reference/htmlsingle/spring-webflow-reference.html#el-language-choices

Con OGNL, posso creare dinamicamente le classi semplici ed eseguire i metodi, ecc, direttamente attraverso il flusso. So che non è una buona pratica farlo all'interno di modelli di pagine Web reali (ad esempio JSP), perché sono basati sulla presentazione, ma il flusso web controlla la logica del programma e trovo la possibilità di utilizzare OGNL in modo efficace per essere molto conveniente. Inoltre, puoi testare il flusso per assicurarti che funzioni facilmente.

Così, due domande:

  1. Ci sono dei grandi vantaggi di utilizzare Primavera EL sopra OGNL, in particolare nel contesto della primavera WebFlow?

  2. È possibile creare oggetti utilizzando EL Spring EL?

risposta

15

Ebbene, il "perché" si afferma nella SpEL docs:

Mentre ci sono molti altri linguaggi espressivi Java disponibili, OGNL, MVEL, e JBoss EL, per citarne alcuni, la primavera Expression Language è stato creato per fornire alla comunità Spring un unico linguaggio di espressione ben supportato che può essere utilizzato su tutti i prodotti nel portfolio Spring.

Mentre OGNL ha i suoi vantaggi, e i suoi fan, la sua funzionalità è troppo limitata per ciò che era necessario per Spring 3, e così è nato SpEL. E poiché SpEL è diventato il linguaggio di espressione di base per Spring, WebFlow si è trasferito a questo come sostituto di OGNL.

Non ho avuto molte ragioni per usare SPEL molto, però, quindi non ho potuto dirti come fare qualche particolare compito.

Per quanto riguarda i suoi vantaggi, direi che il principale è che mentre OGNL è ora stagnante, SpEL è una parte fondamentale di Spring ora, e quindi sarà continuamente migliorata ed estesa. Senza mezzi termini, OGNL è morto (ora è gestito da opensymphony.com, che non è un'organizzazione dinamica e attiva)

+0

Accettato. Tra l'altro ho scoperto che puoi usare direttamente il nuovo operatore in Spring EL, quindi sì, puoi creare oggetti! Eccezionale. – MetroidFan2002

+0

@ MetroidFan2002: la somiglianza tra Unified EL e SPEl è solo superficiale. Spel è molto, molto più espressivo e potente, semplicemente capita di usare una sintassi simile. – skaffman

1

Non argomentando che SpEL non ha più senso per le persone che mantengono Spring, ma OGNL non lo è (a fondo) morto e non è mantenuto da opensymphony.

https://github.com/jkuhnert/ognl

Quindi, c'è. pfffttttttt

Aggiornamento (23/05/11): Sembra che da ora in poi Apache ospiterà OGNL. http://incubator.apache.org/projects/ognl.html

Aggiornamento 2 (2014/04/03): http://commons.apache.org/proper/commons-ognl/ E 'stato lì per un po', ma ho appena notato questa discussione casuale di nuovo oggi.

+0

Um ...quella pagina si collega solo a opensymphony.com – skaffman

+0

La pagina di stato è [qui] (http://incubator.apache.org/clutch.html) – Heathen

+0

SVN è [qui] (https://svn.apache.org/repos/ ASF/incubatore/OGNL /). A partire da ora (2011-05-226) non sono state rilasciate versioni. – Heathen

Problemi correlati