Преимущества использования OGNL по сравнению с типичным EL в Struts2 - PullRequest
7 голосов
/ 14 января 2010

Скажите, что я не использую OGNL для создания своего веб-приложения Struts2, а просто использую типичный el, предоставленный Sun. В чем его минус?

Насколько я знаю, OGNL является своего рода выражением, которое пытается сопоставить лучшее согласованное значение из ValueStack на основе его текущего состояния. Может ли это быть достигнуто простым использованием EL вместо этого?

Заранее спасибо за ответы

Daniel

Ответы [ 2 ]

9 голосов
/ 05 ноября 2010

Краткий ответ: Да, вы можете использовать JSP EL вместо OGNL. У обоих языков есть свои плюсы и минусы, но нет никаких минусов в использовании любого из них.

Длинный ответ: OGNL используется внутри XWork и Struts2, поэтому вы не можете фактически удалить саму зависимость, однако вы, безусловно, можете использовать JSP EL преимущественно (или даже исключительно) в своем слое представления JSP.

Есть плюсы и минусы использования любого языка выражений. Одной из областей, которую OGNL освещает над JSP EL, является динамическое создание карт и коллекций, например, для поддержки <select/> элементов и т. Д.

Однако в большинстве случаев я считаю, что JSP EL лучше подходит для меня, поскольку я интенсивно использую простые теги JSP (.tag файлы).

@ Амит Шарма: Я должен не согласиться с тем, что использование JSP / JSTL поверх OGNL и тегов Struts отрицательно сказывается на цели использования Struts2. Структура перехватчиков, преобразование типов и типы результатов являются одними из наиболее расширяемых и убедительных причин для использования Struts2. Ни одна из этих вещей не связана с какой-либо конкретной технологией просмотра.

2 голосов
/ 15 января 2010

Я не думаю, что это возможно, даже если вы решите не использовать OGNL с вашим веб-приложением struts2. OGNL используется внутри Struts2 для передачи данных и преобразования типов. Если вы планируете использовать struts2, вам придется использовать OGNL, а если вы этого не сделаете, struts2 сделает это автоматически.

Хотя вы можете не использовать OGNL и использовать чистый EL, но таким образом вся цель использования Struts2 будет побеждена, если вы не используете встроенные функции Struts2, вы, вероятно, пишете эти механизмы с нуля, используя EL ,

Хотя на первый взгляд это может показаться странным, но OGNL достаточно мощный и стоит учитывать при разработке в Struts2.

...