`
kensunhu
  • 浏览: 16908 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring3.0.4MVC的resources使用之旅

阅读更多

   在使用RESTful URI之前必须扫清对静态资源访问的问题,相信大家以前都用UrlRewrite Filter方式对配置uri pattern的静态资源进行URL rewrite.自从Spring3支持RESTful uri后,最新的Spring3.0.4巧妙的解决了对静态资源的访问,解决了开发时期对静态资源访问的问题.

 

   先说下Spring3.0.4对静态资源访问的原理.通过<resources/>或者<mvc:resources/>元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中,key为mapping的URI pattern值,而value为ResourceHttpRequestHandler,这样就巧妙的把对静态资源的访问由HandlerMapping来得到ResourceHttpRequestHandler来处理返回,所以就支持classpath目录,jar包内静态资源的访问.

 

   配置过程遇到的问题主要还是启动时BeanDefinitionXMLParser认不出<resources/>,<mvc:resources/>元素而抛出的异常.解决的方法一是正确的xmlns,xsi:schemaLocation.如下:

for <resources/>

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xsi:schemaLocation="
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

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

 

 

for <mvc:resources/>

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	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">

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

   

    光有这些xml头还不行,需要对http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd查找的问题.她会到classpath中查找,所以只须把org.springframework.web.servlet-3.0.4.RELEASE.jar放到web lib目录下,就能查找到xsd,并不需要在IDE中自定义一个User Specified Entries.

 

     另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler.因为对static uri的defaultHandler就是ResourceHttpRequestHandler,否则无法处理static resources request.

 

      但还有个问题困扰这我没搞明白.我这个web工程已对org.springframework.web.servlet.3.0.4(原码工程导入)工程依赖的,为什么非要把org.springframework.web.servlet-3.0.4.RELEASE.jar放入到web lib下才查找到spring-mvc-3.0.xsd?为什么不到依赖的org.springframework.web.servlet.3.0.4原码工程中查找spring-mvc-3.0.xsd?

     

4
2
分享到:
评论
1 楼 awdxzc 2010-09-21  
我用maven2, 它是关联到.jar包的,找不到XSD,配置了一个User Specified Entries后xml文件不提示错误了,但是启动服务器还是报同样的错误。
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:resources'.

请教我是哪里配置得有问题?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:mvc="http://www.springframework.org/schema/mvc"
	   xmlns:context="http://www.springframework.org/schema/context"
	   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/mvc111">

	<!-- Configures the @Controller programming model -->
	<mvc:annotation-driven/>

	
	<mvc:resources mapping="/scripts/**" location="/scripts/"/>
	<mvc:resources mapping="/styles/**" location="/styles/"/>
	<mvc:resources mapping="/assets/**" location="/assets/"/>


http://www.springframework.org/schema/mvc111是我配置的User Specified Entries

相关推荐

    Spring 3.0.4 手册 CHM版

    Spring 3.0.4 手册 CHM版

    Spring3.0.4学习手册

    Spring3.0.4对Spring MVC进行了优化,包括增强的模型绑定、数据验证和视图解析等。 此外,Spring还提供了全面的测试支持,包括单元测试、集成测试和端到端测试。在3.0.4版本中,测试框架更加健壮,可以方便地模拟和...

    Spring3.0.4所需的全部jar包

    5. **spring-aspects.jar**:包含对AspectJ的支持,使得可以使用更强大的面向切面编程特性,如编译时织入和运行时织入。 6. **spring-expression.jar (SPeL)**:Spring表达式语言,用于运行时查询和操作对象模型。...

    spring源码 3.0.4

    1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,它允许通过配置来管理对象的依赖关系,而不是硬编码在类内部。DI使得代码更易于测试和维护,因为对象的创建和组装是由Spring容器负责的。 2. ...

    spring security3.0.4 的acl使用例子

    在本例中,我们将探讨如何在Spring Security 3.0.4中使用ACL特性。 首先,ACL允许开发者定义对象级别的安全性,这意味着你可以控制用户对特定数据对象的操作权限。例如,你可以设定某个用户只能读取但不能修改特定...

    Spring+MVC+3.0.5+Spring+3.0.5+MyBatis3.0.4全注解实例详解

    在本教程中,我们将深入探讨如何使用Spring、Spring MVC 3.0.5以及MyBatis 3.0.4这三个流行的Java框架构建一个全注解的Web应用程序。这个实例详解将帮助开发者理解如何有效地集成这三个组件,实现高效的数据访问和...

    org.spring-framework-3.0.4. 所有jar

    org.springframework.aop-3.0.4.RELEASE.jar org.springframework.asm-3.0.4.RELEASE.jar org.springframework.aspects-3.0.4.RELEASE.jar org.springframework.beans-3.0.4.RELEASE.jar org.springframework....

    spring 3.0.4+mybatis 3.2.3

    spring 3.0.4+mybatis 3.2.3 在学习myBatis和spring整合的情况下,需要下载对应的jar包,如果不方便在网上到处收集,可以直接通过下载这个zip包,解决就可以得到整合需要用到的包。方便,快捷。

    整合struts2.2.1+spring3.0.4+hibernate3.6选择jar包

    - **org.springframework.web.struts-3.0.4.RELEASE.jar**:虽然有人建议不使用此包,但根据实际测试,它在本项目中可以正常使用。 此外,还需要包含日志相关的jar包,例如: - **log4j-1.2.14.jar**:Spring推荐的...

    spring 3.0.4 +hibernate3.6+mybatis3.0.4+struts 2.1.8+freemark整合

    标题 "spring 3.0.4 + hibernate3.6 + mybatis3.0.4 + struts 2.1.8 + freemarker 整合" 描述了一个经典的Java Web开发集成框架,用于构建高效、可扩展的Web应用程序。这个组合在过去的几年里非常流行,因为它将多个...

    Spring Framework 3.0.4 with docs

    J2EE框架之一的Sping的Framework包,最新版。 里面还包括官方文档。 由于大小限制,不得不将它分为3部分了。

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合

    总结来说,JBPM4.4+Hibernate3.5.4+Spring3.0.4+Struts2.1.8的整合是一项涉及多个层面的工作,需要对每个组件有深入的理解,并能熟练配置和使用。通过这个整合,开发者能够构建出强大的业务流程管理系统,同时利用...

    Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解完整版

    总结,本实例详细介绍了如何使用 Spring MVC 3.0.5、Spring 3.0.5 和 MyBatis 3.0.4 进行全注解开发,涵盖了开发环境配置、Maven 的使用、SSM 整合以及如何在 Eclipse 和 MyEclipse 中集成 Maven。这个教程对于希望...

    Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解

    随着Spring 3.0版本的发布,RESTful支持成为了Spring MVC框架的一大亮点,这不仅增强了框架的功能性和灵活性,也使其成为众多开发者构建现代Web应用程序的首选框架之一。此外,MyBatis作为一种优秀的持久层框架,与...

    SSH2(struts2.2.1 + hibernate3.6 +spring3.0.4)整合的例子

    struts2.2.1 + hibernate3.6 +spring3.0.4 整合例子

Global site tag (gtag.js) - Google Analytics