2014-06-28 167 views
1

有人可以帮我解决这个问题。我是新来的春天所以..在这种情况下,问题是 url =“localhost:8080/projectname/stuff”一切工作正常资源被导入,但当我添加“/”或任何@pathVariable“/ stuff/{id }”,ressources不再进口,所以我没有像无CSS什么春季资源映射mvc 3

为spring-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> 

弹簧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> 

回答

0

请参阅您的资源,这种方式: 加${pageContext.request.contextPath}之前assets/

例如:

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

@ user3786833你会把它标记为答案吗? –

0

你的配置以多种方式存在缺陷。你有<mvc:annotation-driven />已经配置RequestMappingHandlerMapping。接下来,DefaultAnnotationHandlerMapping已弃用,取而代之的是RequestMappingHandlerMapping,他们目前正在相互竞争。修复很简单,删除两者。

<context:compont-scan />已暗示<context:annotation-driven />并已包括PersistenceAnnotationBeanPostProcessor

Hibernate不需要加载时间编织器,所以你应该没问题。

删除所有的混乱让你留下以下。

<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

我也跟着大约为spring-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 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

我说:

$ {} pageContext.request.contextPath

之前资产似乎解决了问题谢谢 -