What are the conventional locations for for JSPs, JavaScript, CSS, Images in Maven web projects?

前端 未结 2 1618
我寻月下人不归
我寻月下人不归 2020-12-15 22:47

I need to convert a traditional J2EE web application into a new Maven web project. In traditional project JSPs are under WebApp/jsps folder, JavaScript & CS

相关标签:
2条回答
  • 2020-12-15 23:21

    Take a look at this article on the usage of the maven war plugin. It has a simple project structure.

    Quoting from above link,

     |-- 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
    
    0 讨论(0)
  • 2020-12-15 23:21

    In a Maven project, firstly, you must add

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

    or

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

    to your servlet-config.xml file (it is spring-servlet.xml in my project).

    After that, construct a folder "resources" if it doesnt't exist under src/main/webapp. Put your CSS folder that contains CSS files, images folder that contains image files under the folder resources.

    Now you can access any file under resources folder from a JSP file as:

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

    or

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

    My spring-servlet.xml file:

    <?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>
    

    Project skeleton:

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

    ...etc

    0 讨论(0)
提交回复
热议问题