Tengo una página jsp que se ve algo como esto:

MyPage.jsp

<%@ include file = "/Title.jsp" %>
<%@ include file = "/Header.jsp" %>
<html>...</html>

En El Título.jsp no es una instancia de «usuario», vamos a decir:

User user = new User();

en el Encabezado.jsp usuario se hace referencia como

user.setName("John");

Eclipse se muestra el error de que «el usuario no puede ser resuelto a la variable» en el encabezado.archivo jsp. Puedo entender perfectamente por qué. Hay una manera de decirle a Eclipse para ignorar este error en particular para esta variable en particular? Hay algo que se puede hacer aquí?.

En el trabajo, estoy apoyando a algunos de los viejos (y grande y feo) aplicación Java que es en realidad una aplicación web. Estoy tratando de convertir este Proyecto Java para Java Proyecto Web Dinámico. Antes de que me la ha convertido, de alguna manera Eclipse no se preocupan por estos colgantes variables que están por todo el lugar. Ahora, en el Proyecto Web Dinámico, Eclipse está quejando.

Volver a escribir el código está fuera de toda duda. Cada archivo jsp se compone de múltiples incluye con toneladas de variables globales. Yo no no tocar más de lo que necesitan.

  • No creo que usted puede filtrar las validaciones por el nombre de la variable, que puede hacer que por tipo de archivo o carpeta. Usted, evidentemente, puede deshacerse de todas las validaciones para archivos JSP, pero supongo que no te interesa. Por CIERTO, me puedo imaginar a los usuarios de Emacs de leer su pregunta con satisfacción, no hay duda de que sería la manera de hacer que Emacs (no estoy seguro, ya que yo uso… Eclipse o Intellij)
  • He encontrado pregunta similar aquí: stackoverflow.com/questions/2268153/…, que básicamente dice lo mismo, para activar la validación de la…
  • Sí, Eclipse es bastante hopless cuando se trata de JSP manejo.
InformationsquelleAutor bobetko | 2013-05-16

2 Comentarios

  1. 31

    Mejores Prácticas

    Idealmente, uno no debería tener ningún <% //scriptlet %> bloques en Jsp más.

    Jsp han evolucionado mucho desde la simple ocultación de código Java, por detrás de las Acciones y Etiquetas Personalizadas para el uso de Lenguaje de Expresión, JSTL y ahora OGNL expresiones para obtener los resultados (para la solicitud sólo procesados) de pre-pobladas JavaBeans disponible en cualquiera de los ámbitos de aplicación (como el de reunión, de petición, página, etc.) o sofisticado almacenes de datos (como el ValueStack en Struts 2).

    Así, una solución adecuada sería algo como (no se puede usar EL porque necesitamos un «usuario» de referencia)

     <jsp:useBean id="user" class="foo.User" /> <!-- scope="page" by default -->

    Esta línea de código cuando se añade a Title.jsp crear una nueva User bean y agregar a la page alcance y en esta misma línea de código en Header.jsp sería entonces de recuperar la User bean de la page alcance y darle una referencia con nombre user que luego pueden ser utilizados en todo el resto del archivo.

    Pero, ya que el resto del código Java no está escrito con etiquetas que esto no tiene mucho sentido. Así, también puede simplemente pasar el grano entre dos Jsp como un atributo de la solicitud utilizando uno de sus <% //scriptlet %> bloques.

    <% //in Title.jsp
      request.setAttribute ("user", new User());
    %>
    
    <% //in Header.jsp
      User user = request.getAttribute ("user");
      user.setName ("John Doe");
    %>

    Respuesta

    Si la base de código es demasiado grande para el salvamento y el uso de las mejores prácticas es simplemente práctico, se puede configurar el IDE Eclipse para ignorar la sintaxis JSP errores de validación o mejor sólo desactivarlos para JSP fragmentos o archivos y carpetas específicos.

    Con su proyecto web seleccionada en el área de trabajo vaya a Project > Properties > Validation > JSP Syntax. Luego Enable project specific settings y apagar Validate JSP fragments como se muestra a continuación.

    Variable de Java a través de múltiples incluyen bloques de la variable no puede ser resuelto

    Un JSP fragmento es un .jspf archivo que contiene una JSP/HTML segmento sin apertura y cierre de las etiquetas de encabezado (a menos que sea un encabezado o un pie de página fragmento de curso). Así que, aunque tendría que cambiar el nombre de archivos a .jspf para Eclipse para que los reconozca como fragmentos (y no validar); las principales ventajas son:

    • archivos pueden estar en cualquier lugar en la estructura de carpetas
    • la extensión indica claramente que es una de incluir
    • nuevos fragmentos se identifica automáticamente

    Si el número de archivos de inclusión es enorme o que no puede ser cambiado de nombre, por alguna razón, su mejor opción sería para moverlos a una carpeta separada (como includes) y, a continuación, excluir la carpeta de JSP validación de sintaxis.

    De nuevo, ir al Proyecto > Propiedades > Validación y con proyecto específico activada la configuración haga clic en examinar el tipo de [...] botón para acceder a la JSP Syntax Validator configuración.

    Variable de Java a través de múltiples incluyen bloques de la variable no puede ser resuelto

    Aquí, en primer lugar crear un Exclude Group y, a continuación, Add Rule a excluir una carpeta (como WebContent/incluye en la imagen) de la JSP validación de sintaxis.

    Variable de Java a través de múltiples incluyen bloques de la variable no puede ser resuelto

    Ahora Eclipse iba a dejar de informar de errores para cualquier archivo JSP caído en este incluye carpeta. Usted podría utilizar el mismo enfoque para archivos individuales así, pero lo práctico que es, volvería a depender de cómo muchos de esos fragmentos que usted tiene.

    Referencias:

    Cómo evitar el Código de Java en JSP-Archivos?

    • Con el eclipse de neón, esta opción parece haber desaparecido. O se ha movido a otra parte?
  2. 5

    A su pregunta: ¿hay una manera de decirle a Eclipse para ignorar este error en particular para esta variable en particular? Como se señaló anteriormente, el error viene desde el marco de validación en Eclipse. Lo mejor que puedes hacer es decirle a eclipse para ignorar ese archivo, no se que error o esa variable. Para ello, haga clic derecho en el proyecto y tire hacia arriba es el diálogo de propiedades. Una vez allí, seleccione «Validación» y haga clic en la casilla de verificación para Habilitar el proyecto de la configuración específica». Desde allí se puede activar o desactivar las validaciones específicas. Personalmente, no me parece que el Eclipse validadores del todo útil y toman un poco de tiempo de procesamiento, así que me gire a casi todos! Sin embargo, usted tiene algunos de grano fino de control a través de la «Configuración» de la columna. Se golpea la elipsis junto a JSP Contenido Validador (por ejemplo) y puede excluir específicamente sólo en la Cabecera.jsp desde allí.

    Espero que esto ayude, sólo proporciona los detalles a los comentarios anteriores, aunque.

Dejar respuesta

Please enter your comment!
Please enter your name here