в чем разница между # {} $ {} и% {}? - PullRequest
16 голосов
/ 24 февраля 2012

Я сейчас работаю со Struts2, и я просто не понимаю, в чем разница между ${var}, #{var} и %{var}, это разные области?что они они?

Я нашел пример #:

<s:select label="Year"
      id="%{param.name}"
      list="#{'2010':'2010','2011':'2011','2012':'2012','2013':'2013','2014':'2014', '2015':'2015'}"
      value="%{currentYear}"
      required="true"
/>

здесь это выглядит как ассоциативный массив, но я видел другие случаиэто как #var (без скобок) есть идеи?

Ответы [ 2 ]

19 голосов
/ 24 февраля 2012
  • ${} - Стандартное обозначение JSP EL.
  • #{} - стандартное обозначение UEL; никогда не использовал его, может работать.
  • %{} - Нотация выражения OGNL.

Обозначение JSP EL работает, потому что есть оболочка запроса, которая сначала откладывает в стек значений для поиска, а затем возвращается к нормальной оценке JSP, если в стеке значений не найдено значение.

Нотация выражения OGNL действительна только в тегах S2. IMO его следует использовать всякий раз, когда вы оцениваете выражение OGNL, хотя это довольно часто необязательно. Когда это необязательно, это отчасти дерьмовый выстрел. Это часто бывает, но не всегда. Лучше всего его использовать, будьте откровенны и общительны.

Вы можете спрашивать о # переменных, например, #session и т. Д. # используется для разрешения значения в стеке значений, который находится в части "map". Я рассматриваю стек значений как комбинацию стека и области действия: если объект помещен в стек, вам не нужен #. Если значение было создано , вам нужно #.

Например, если вы используете <s:set> для создания переменной, вы должны получить к ней доступ с помощью префикса #, например:

<s:set var="foo" value="'plugh'"/>
<s:property value="#foo"/>
2 голосов
/ 20 января 2015

Просто еще одна заметка:

Вы можете использовать $ в вашем действии , чтобы попросить распоряжения сравнить ваши параметры с OGNL перед передачей его другим методам, например:

Использование пользовательского валидатора

Struts 2 - повторное использование средства проверки пользовательских выражений

OR

Изменить имя загружаемого файла

Скачать Struts 2 - Как динамически настроить имя файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...