2011-04-04 11 views
12

Necesito convertir una aplicación web tradicional J2EE en un nuevo proyecto web Maven. En proyectos tradicionales JSP están bajo la carpeta WebApp/jsps, JavaScript & archivos CSS en la carpeta WebApp/scripts, imagen en la carpeta WebApp/images, .properties archivos en la carpeta WebApp/resources.¿Cuáles son las ubicaciones convencionales para JSP, JavaScript, CSS, imágenes en los proyectos web de Maven?

¿En el proyecto Maven dónde iría cada uno de esos tipos de archivos? ¿Debo crear carpetas en src/main/webapp, tales como: src/main/webapp/jsps, src/main/webapp/images, src/main/webapp/resources & hellip; etc. y copia los archivos del proyecto anterior? ¿O hay alguna estructura estándar a seguir?

Respuesta

7

Eche un vistazo a this article sobre el uso del plugin maven war. Tiene una estructura de proyecto simple.

Citando del enlace anterior,

|-- pom.xml 
`-- src 
    `-- main 
     |-- java 
     | `-- com 
     |  `-- example 
     |   `-- projects 
     |    `-- SampleAction.java 
     |-- resources 
     | `-- images 
     |  `-- sampleimage.jpg 
     | `-- js 
     |  `-- scripts.js 
     | `-- css 
     |  `-- styles.css 
     `-- webapp 
      |-- WEB-INF 
      | `-- web.xml 
      |-- index.jsp 
      `-- jsp 
       `-- websource.jsp 
+1

Esto no incluye ningún archivo .js o .css? –

+0

¿Cómo puedo agregar enlaces a JS, CSS, imágenes presentes en 'src/main/resources' en un JSP? – OO7

+1

Parece que la página maven ya no tiene la estructura anterior. – RuntimeException

3

En un proyecto Maven, en primer lugar, debe agregar

<mvc:resources mapping="/resources/**" location="/resources/" /> 

o

<resources mapping="/resources/**" location="/resources/" /> 

a su archivo de servlet-config.xml (es spring-servlet.xml en mi proyecto).

Después de eso, crea una carpeta de "recursos" si no existe en src/main/webapp. Ponga su carpeta CSS que contiene archivos CSS, carpeta de imágenes que contiene archivos de imagen en los recursos de la carpeta.

Ahora se puede acceder a cualquier archivo en la carpeta de recursos de un archivo JSP como:

<img src="<%=request.getContextPath() %>/resources/images/image.jpg"/> 

o

<link rel="stylesheet" href="<%=request.getContextPath()%>/resources/css/style.css" /> 

Mi archivo de primavera-servlet.xml:

<?xml version="1.0" encoding="windows-1252"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

    <!-- Use @Component annotations for bean definitions --> 
    <context:component-scan base-package="form"/> 

    <!-- Use @Controller annotations for MVC controller definitions --> 
    <mvc:annotation-driven /> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <!-- Add JPA support --> 
    <bean id="emf" class= 
     "org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="loadTimeWeaver"> 
     <bean class= 
"org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/> 
     </property> 
    </bean> 

    <!-- Add Transaction support --> 
    <bean id="myTxManager" 
    class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="emf"/> 
    </bean> 

    <!-- Use @Transaction annotations for managing transactions --> 
    <tx:annotation-driven transaction-manager="myTxManager" /> 

    <!-- View resolver --> 
<bean class= 
    "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/"/> 
</bean> 

</beans> 

Proyecto esqueleto:

src 
--main 
    --webapp 
    --resources 
     --css+ 
     --images+ 
--target 

... etc

Cuestiones relacionadas