Рефакторинг EL выражений в JSP - PullRequest
6 голосов
/ 26 января 2012

У меня много файлов JSP с выражениями EL в форме ${foo.bar.baz.phleem1}, ${foo.bar.baz.phleem2} и т. Д. (Первые два или три сегмента равны).Чтобы уменьшить количество просмотров EL, я нахожусь в процессе рефакторинга этих страниц:

Источник:

<c:out value="${foo.bar.baz.phleem1}" />
<c:out value="${foo.bar.baz.phleem2}" />
<c:out value="${foo.bar.baz.phleem3}" />

После рефакторинга:

<c:set var="baz" value="${foo.bar.baz}" />
<c:out value="${baz.phleem1}" />
<c:out value="${baz.phleem2}" />
<c:out value="${baz.phleem3}" />

Я знаю, что могу сделать большинствоэто с поиском / заменой, но кажется небезопасным, так как игнорирует структуру кода.

Есть ли какая-либо поддержка такого типа рефакторинга в Eclipse или IntelliJ Idea?

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Может быть, вы можете использовать nxml-режим в emacs. (я не проверял это) Есть некоторые функции, такие как nxml-up-element. Бьюсь об заклад, вы можете создать мощный макрос. Но я думаю, что проще найти код и сделать это вручную.

0 голосов
/ 26 января 2012

Да. Вы можете использовать заполнители в Eclipse, используя регулярные выражения, и соответственно изменить их.

см. Следующий URL для регулярных выражений в eclipse http://www.eclipse.org/tptp/home/downloads/installguide/gla_42/ref/rregexp.html

Нажмите кнопку «Поиск» [Ctrl + H], установите флажок «Регулярное выражение» и выберите filepattern для jsp.

enter image description here

Нажмите Ctrl + пробел для помощника по содержимому.

enter image description here

Нажмите на поиск для соответствия, Замените, чтобы заменить все совпадающие строки за один раз. Вы можете использовать группы Regex для замены содержимого

enter image description here

enter image description here

enter image description here

...