2014-06-28 4 views
1

quelqu'un peut m'aider s'il vous plaît avec ce problème. je suis nouveau au printemps donc .. le problème est dans ce cas url = "localhost: 8080/projectname/stuff" tout fonctionne bien les ressources sont importées mais quand j'ajoute "/" ou tout @pathVariable "/ stuff/{id } », ressources ne sont plus importées donc je n'ai aucune image ne rien cssressources cartographie au printemps mvc 3

printemps-servlet.xml

 <import resource="data-config.xml"/> 

    <mvc:resources mapping="/assets/**" location="/WEB-INF/assets/" /> 

    <tx:annotation-driven transaction-manager="transactionManager"/> 
      <bean id="propertyConfigurer" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="classpath:/META-INF/spring/jdbc.properties" /> 
    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${db.driver}" /> 
     <property name="url" value="${db.url}"/> 
     <property name="username" value="${db.username}"/> 
     <property name="password" value="${db.password}"/> 
    </bean> 
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter" ref="jpaAdapter" /> 
     <property name="persistenceUnitName" value="persistence" /> 
     <property name="loadTimeWeaver"> 
    <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> 
     </property> 
    </bean> 

    <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
     <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
     <property name="generateDdl" value="true" /> 
     <property name="showSql" value="true" /> 
    </bean> 

<context:annotation-config /> 
<mvc:default-servlet-handler/> 
<context:component-scan base-package="com.bd" annotation-config="true" /> 
<mvc:annotation-driven /> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 
<bean id="localeChangeInterceptor" 
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
    <property name="paramName" value="language" /> 
</bean> 
<bean id="handlerMapping" 
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
    <property name="interceptors"> 
    <ref bean="localeChangeInterceptor" /> 
    </property>  
</bean> 

</beans> 

printemps-security.xml

<http pattern="/login" security="none"/> 
    <http pattern="/assets/**" security="none"/> 


<http auto-config="true" use-expressions="true"> 
     <access-denied-handler error-page="/denied" /> 
     <intercept-url pattern="/login" access="permitAll"></intercept-url> 
     <intercept-url pattern="/logout" access="permitAll"></intercept-url> 
     <intercept-url pattern="/" access="isAnonymous()"></intercept-url> 
     <intercept-url pattern="/admin*" access="isAuthenticated()"/> 
     <intercept-url pattern="/admin/*" access="isAuthenticated()"/> 
     <form-login login-page="/login" default-target-url="/admin/question" authentication-failure-url="/login" 
     username-parameter="username" 
     password-parameter="password" 
     /> 


     <logout logout-success-url="/login?logout" invalidate-session="true" delete-cookies="JSESSIONID"/> 
    </http> 

<beans:bean id="userDetailsService" class="com.bd.service.implement.UserDetailsServiceImpl"></beans:bean> 

<authentication-manager> 
<authentication-provider user-service-ref="userDetailsService"> 
<password-encoder hash="md5"/> 
</authentication-provider> 
</authentication-manager> 
</beans:beans> 

Répondre

0

Reportez-vous à vos ressources de cette façon : Ajouter ${pageContext.request.contextPath} avant assets/

exemple:

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/assets/PATH_TO_YOUR_CSS_FILE/style.css" > 
+0

@ user3786833 pourriez-vous le marquer comme une réponse? –

0

Votre configuration est erronée de plusieurs façons. Vous avez <mvc:annotation-driven /> qui configure déjà un RequestMappingHandlerMapping. Ensuite, le DefaultAnnotationHandlerMapping est obsolète et remplacé par RequestMappingHandlerMapping et ils sont actuellement en concurrence les uns avec les autres. Le correctif est simple supprimer les deux.

<context:compont-scan /> implique déjà <context:annotation-driven /> et comprend déjà PersistenceAnnotationBeanPostProcessor.

Hibernate n'a pas besoin d'un tisseur de temps de chargement, donc vous devriez aller bien en supprimant cela.

Enlever tout le fouillis vous laisse avec ce qui suit.

<beans ...> 

    <import resource="data-config.xml"/> 

    <context:component-scan base-package="com.bd" /> 
    <context:property-placeholder location="classpath:/META-INF/spring/jdbc.properties" /> 

    <mvc:annotation-driven /> 

    <mvc:interceptors> 
     <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
      <property name="paramName" value="language" /> 
     </bean> 
    </mvc:interceptors> 

    <mvc:default-servlet-handler/> 
    <mvc:resources mapping="/assets/**" location="/WEB-INF/assets/" /> 

    <tx:annotation-driven transaction-manager="transactionManager"/> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${db.driver}" /> 
     <property name="url" value="${db.url}"/> 
     <property name="username" value="${db.username}"/> 
     <property name="password" value="${db.password}"/> 
    </bean> 

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter" ref="jpaAdapter" /> 
     <property name="persistenceUnitName" value="persistence" /> 
    </bean> 

    <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
     <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
     <property name="generateDdl" value="true" /> 
     <property name="showSql" value="true" /> 
    </bean> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

</beans> 
0

i suivi vos conseils sur le printemps-servlet.xml le fichier ressemble maintenant à ce

<import resource="data-config.xml"/> 

    <mvc:resources mapping="/assets/**" location="/WEB-INF/assets/" /> 

    <tx:annotation-driven transaction-manager="transactionManager"/> 

    <bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="classpath:/META-INF/spring/jdbc.properties" /> 


    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${db.driver}" /> 
     <property name="url" value="${db.url}"/> 
     <property name="username" value="${db.username}"/> 
     <property name="password" value="${db.password}"/> 
    </bean> 

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter" ref="jpaAdapter" /> 
     <property name="persistenceUnitName" value="persistence" /> 

    </bean> 

    <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
     <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
     <property name="generateDdl" value="true" /> 
     <property name="showSql" value="true" /> 
    </bean> 

    <context:component-scan base-package="com.bd" annotation-config="true" /> 

    <mvc:annotation-driven /> 


    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
     <property name="prefix" value="/WEB-INF/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

    </beans> 
0

J'ai ajouté:

$ {} pageContext.request.contextPath

avant actifs semble résoudre le problème grâce -

Questions connexes