2012-01-26 24 views
6

Tengo muchos archivos JSP con expresiones EL del formulario ${foo.bar.baz.phleem1}, ${foo.bar.baz.phleem2} etc. (los primeros dos o tres segmentos son iguales). Para reducir las búsquedas EL estoy en el proceso de refactorización estas páginas:Expresiones Refactor EL en JSP

Fuente:

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

Después de refactorización:

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

Sé que puedo hacer casi todo esto con la búsqueda/sustitución, pero se siente inseguro ya que ignora la estructura del código.

¿Existe algún tipo de soporte para este tipo de refactorización en Eclipse o IntelliJ Idea?

+2

No en Eclipse por lo que yo sé. En Eclipse, sin embargo, puede previsualizar los resultados de búsqueda y reemplazo uno al lado del otro y desmarcar coincidencias incorrectas en la lista antes de aplicar. – BalusC

+0

Actualizado con lo que he hecho. –

+0

Lo he comprobado. IDEA 11.0.1 tampoco es compatible con este tipo de refactorización. – Vadzim

Respuesta

0

Sí. Puede usar marcadores de posición en Eclipse usando expresiones regulares y cambiar en consecuencia.

refieren siguiente URL para expresiones regulares en Eclipse http://www.eclipse.org/tptp/home/downloads/installguide/gla_42/ref/rregexp.html

Haga clic en Buscar [Ctrl + H], verificación de opciones de expresión regular y filepattern a JSP.

enter image description here

Presione Ctrl + espacio para la ayuda de contenido.

enter image description here

Haga clic en búsqueda de coincidencia, en Reemplazar para reemplazar la totalidad de la cadena coincidente en una sola vez. Puede utilizar grupos de expresiones regulares para reemplazar el contenido

enter image description here

enter image description here

enter image description here

+1

OP es consciente de esto: * "Sé que puedo hacer la mayor parte de esto buscando/reemplazando, pero se siente inseguro ya que ignora la estructura del código." * OP buscaba más la misma funcionalidad de refactorización que en el código fuente Java normal por Alt + Shift + L – BalusC

+1

Esta respuesta realmente no dice cómo hacer lo que el PO está pidiendo, solo lo que puede usar para improvisar su propia solución, que probablemente no será equivalente a una operación de "extraer variable". – millimoose

+0

He usado lo mismo para lograr cambiar el nombre del paquete por aproximadamente ... 350 archivos Java en un solo disparo :)! Sentí que podría ayudar el uso de grupos de expresiones regulares :) –

1

Tal vez se puede utilizar el nxml-mode en emacs. (No lo he probado) Hay algunas funciones como nxml-up-element. Apuesto a que puedes crear una poderosa macro. Pero creo que es más fácil grep el código y hacerlo manualmente.

+0

Hahaha, +1 para sugerencias locas de emacs –

+0

El problema principal es que nuestras JSP no están bien formadas en XML. De lo contrario, piratearía alguna herramienta basada en XML yo mismo. –

Cuestiones relacionadas