- 浏览: 286006 次
- 性别:
- 来自: 上海
最新评论
-
javatozhang:
风间苍月 写道wddgfzs 写道使用JSR-303 Vali ...
Spring MVC 学习笔记 十 使用jsr 303进行校验 -
Fron:
...
Spring MVC 学习笔记 五 controller与requestmapping -
dwangel:
freemailfjgh 写道请问怎么才能获取dispatch ...
ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别 -
di1984HIT:
学习了~~
Spring MVC 学习笔记 八 文件上传 -
di1984HIT:
学习了~~
Spring MVC 学习笔记 九 json格式的输入和输出
文章列表
spring通过在web.xml 中配置ContextLoaderListener 来加载context配置文件,在DispatcherServlet中也可以来加载spring context配置文件,那么这两个有什么区别呢。
ContextLoaderListener中加载的context成功后,spring 将 applicationContext存放在ServletContext中key值为"org.springframework.web.context.WebApplicationContext.ROOT"的attribute中。(servletContext. ...
1:mvc annotation-driven 新增标签
以下为spring mvc 3.1中annotation-driven所支持的全部配置。
<mvc:annotation-driven message-codes-resolver ="bean ref" validator="" conversion-service="">
<mvc:return-value-handlers>
<bean></bean>
</mvc:r ...
Locale
Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 Accept-Language 来确定访客的local。对于前端jsp页面上,spring提供了标签<spring:message>来提供从resource文件中获取的文字的动态加载功能。
例如
修改servlet context xml文件中的messageSource部分,增加对多国语言message的code resource的引入。
<bean id="messageSource"
class=" ...
Xml格式输入
Spring mvc中缺省提供了SourceHttpMessageConverter 和 Jaxb2RootElementHttpMessageConverter,可用来解析request body中输入的xml string。
其中 SourceHttpMessageConverter 将输入的xmlString 转换成xml的Source对象(如DomSource,SaxSource等),再在handle ...
Spring mvc 中对于输出格式为pdf和xsl的view,提供了两个abstract的view类供继承分别为AbstractPdfView和AbstractExcelView。
Pdf格式输出
对于pdf格式的输出,spring 缺省提供的模板类为AbstractPdfView,并利用iText来实现pdf的输出。但此类只支持iText 2.x的版本,而目前iText最新的版本是5.x,为支持最新版本的iText类库,需要根据AbstractPdfView的内容依样画葫芦自己实现一个PdfView模板类。
public abstract class AbstractIText5PdfVi ...
Servlet中的输入参数为都是string类型,而spring mvc通过data bind机制将这些string 类型的输入参数转换为相应的command object(根据view和controller之间传输数据的具体逻辑,也可称为model attributes, domain model objects)。在这个转换过程中,spring实际是先利用java.beans.PropertyEditor中的 setAdText方法来把string格式的输入转换为bean属性,
亦可通过继承java.beans.PropertyEditorSupport来实现自定义的PropertyEdit ...
Spring MVC在使用了<mvc:annotation-driven> 后,如果路径中有jsr 303的实现,将自动提供对jsr 303验证方式的支持。
一:使用hibernate validator进行数据验证
选择的是hibernate validator,因此需要修改pom.xml增加对hibernate validator的支持。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</art ...
Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用
<!-- json -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>1.8.1</version>
</dependency>
...
Spring mvc使用jakarta的commons fileupload来支持文件上传。
先修改pom.xml,增加对commons fileupload lib包的引用。
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
...
@InitBinder
在controller中注册一个customer protperty editor以解析request中的参数并通过date bind机制与handler method中的参数做绑定。
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false) ...
使用@requesMapping标注的处理函数包括的可选参数,除了HttpServletRequest, HttpServletResponse,
HttpSession这些web应用中常见的参数及之前提到过的@PathVariable外,还可以包括以下可选的参数,其中大部分参数的顺序没有特殊要求的。
java.util.Locale
当前请求所属的区域设置。
java.io.InputStream或java.io.Reader
用来读取
使用@controller定义controllersSpring mvc将特定url的请求分发到controller类来进行处理在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义
<context:component-scan base-package="net.zhepu.web" />
使用@RequestMapping标注来关联url和controllers 通过@Request ...
Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等。
Spring MVC中,通过在servlet
context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的dispatcherServlet中的使用过程其实和之前提到的HandlerMapping和HanderAdapter类似。
DispatcherServlet初始化时,首先根据当前context中注册的Beans中 ...
HandlerMapping
Spring mvc 使用HandlerMapping来找到并保存url请求和处理函数间的mapping关系。
以DefaultAnnotationHandlerMapping为例来具体看HandlerMapping的作用
DefaultAnnotationHandlerMapping将扫描当前所有已经注册的spring beans中的@requestmapping标注以找出url 和 handler method处理函数的关系并予以关联。
Handleradapter
Spring MVC通过HandlerAdapter来实际调用处理函数。
以Ann ...
Spring mvc 目前支持5个tag,分别是
mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和mvc:default-servlet-handler
mvc:annotation-driven
注册 DefaultAnnotationHandlerMapping 和AnnotationMethodHandlerAdapter两个bean,及一系列缺省的messageconverter(需要classpath中有相应的lib包的支持。)
相当于以下配置的效果。
<bean
...