2009-02-11 13 views
5

He instalado Web Tools Project para Eclipse versión 3.4. He intentado que la refactorización funcione de la manera que creo que debería y no he tenido éxito.¿El Proyecto de Herramientas Web de Eclipse maneja la refactorización dentro de las JSP?

Tengo un proyecto de Java que contiene las clases de Java para el jar que se coloca en/WEB-INF/lib para un sitio web. Otro proyecto (un proyecto web dinámico) tiene los archivos JSP para el mismo sitio. El proyecto Dynamic Web se configura con el proyecto Java como un proyecto requerido en la ruta de compilación. También he configurado la opción Referencias del proyecto para que el proyecto web dinámico haga referencia al proyecto Java.

Si utilizo la refactorización para cambiar el nombre de un método en una de las clases de Java, esperaría que se cambiara el nombre de las referencias a ese método en las JSP. Pero no funciona. Las referencias en el proyecto de Java que contiene la clase y otros proyectos de Java que usan esa clase tienen las referencias modificadas son refactorizadas, pero no referencias al método dentro de las JSP.

He estado jugando con él durante días, probando diferentes versiones de Eclipse y WTP. Borrando todos mis proyectos y archivos y configurándolos nuevamente. Nada hace ninguna diferencia.

¿Funciona esto para alguien más? ¿Hay algo especial que deba establecer para que funcione?

Respuesta

1

Lo sentimos, este no está respondiendo directamente a su pregunta, pero sin embargo aborda su problema ... quizás ayude, de lo contrario ignore:

Como sugirió matt b, no debe colocar el código java en un jsp. En cambio, "simplemente" usa etiquetas. Si está usando standard tag library, allí encontrará casi todo lo que necesita. Para cosas que debe manejar usted mismo, es muy simple escribir sus propias etiquetas una vez que sepa de qué etiquetas se trata.

Con este truco obtendrás una mejor arquitectura de aplicación (vista), oportunidad para pruebas (espero que te guste), sigas el principio DRY (no te repitas) y coloca todo el código Java en archivos .java, que serán recogidos fácilmente por cualquier herramienta.

Incluso hay una opción para que web.xml imponga la desactivación de las secuencias de comandos, dejando las etiquetas funcionando, pero si ya tiene una gran inversión en jsps con script, puede que esto no sea lo que necesita ...

<jsp-config> 
    <jsp-property-group> 
    <url-pattern>*.jsp</url-pattern> 
    <scripting-invalid>true</scripting-invalid> 
    </jsp-property-group> 
</jsp-config> 

Otra respuesta a una pregunta que usted no pidió es que IntelliJ Idea maneja el escenario que se habla muy bien (aunque yo estoy usando eclipsar a mí mismo un día a otro, esta es una de las diferencias entre ambos IDEs)

+0

Jakarta Taglibs fue retirado en 2010, sus taglibs han quedado obsoletos y se ha creado un nuevo Extended Taglib. The Standard y RDC Taglibs se han trasladado a Tomcat. [enlace] (https://tomcat.apache.org/taglibs/) –

+0

gracias por la notificación y el enlace - corregido en el artículo que se escribió inicialmente antes de este retiro –

0

Quizás no te esté entendiendo correctamente, pero parece que estás organizando las clases en Jar o War antes de intentar refactorizar. La refactorización es para el proyecto actual, no para nada en su ruta de compilación.

Si he entendido mal su pregunta, me disculpo.

+0

Disculpe el malentendido. No, no voy a poner las clases en un tarro hasta el despliegue para la prueba. La refactorización funciona para todos los proyectos, siempre que los proyectos sean de Java. –

+0

Moví mi respuesta a wiki ya que no ayudó. – WolfmanDragon

2

Mis experiencias con la forma en que WTP (o cualquier sabor de Eclipses) trata el código de Java en bloques scriptlet en un archivo JSP siempre ha sido horrible: nunca funciona bien o de la manera esperada. He visto a Eclipse agregar <jsp:import> declaraciones en el medio del archivo JSP, y hacer todo tipo de formatos extraños.

Mi único consejo es evitar editar un código en un JSP dentro de Eclipse.

(Mi otro pedazo de consejo es que no poner código Java directamente en un archivo JSP, y pasar a una arquitectura MVC, pero eso es un tema para otro día ...)

2

Por favor, vote para poder ser posible here. O crea una nueva solicitud de función más específica. En ese enlace puede ver que hay muchos problemas relacionados con la refactorización y JSP, pero solo algunas personas saben que si votan por ellos, es mucho más probable que se implementen en la próxima versión de eclipse.

Por favor, copie y corrija el enlace antes de usarlo, ya que se corrompe. El "+" se convierte en "% 2B". Aquí está el enlace correcto: https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor

+0

+1 para el informe de error ;-) – GingerHead

Cuestiones relacionadas