SpringMVC配置JSON、JSP、FreeMark多视图解析器配置

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring M...

 1.web.xml内容: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<? xml  version = "1.0"  encoding = "UTF-8" ?>
< web-app  xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
     xmlns = "http://java.sun.com/xml/ns/javaee" 
     xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     id = "WebApp_ID"  version = "3.0" >  
     
     < context-param >
         < param-name >contextConfigLocation</ param-name >
         < param-value >classpath:beans.xml</ param-value >
     </ context-param >    
     
     < listener >        
         < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class >
     </ listener >
     <!--处理因使用内省API而导致的内存泄漏问题-->
     < listener >
         < listener-class >org.springframework.web.util.IntrospectorCleanupListener</ listener-class >
     </ listener >
     
     < filter >
         < filter-name >CharacterEncodingFilter</ filter-name >
         < filter-class >org.springframework.web.filter.CharacterEncodingFilter</ filter-class >
         < init-param >  
             < param-name >encoding</ param-name >  
             < param-value >utf-8</ param-value >  
         </ init-param
         < init-param >  
             < param-name >forceEncoding</ param-name >  
             < param-value >true</ param-value >  
         </ init-param >  
     </ filter >
     
     < filter-mapping >
         < filter-name >CharacterEncodingFilter</ filter-name >
         < url-pattern >/*</ url-pattern >
     </ filter-mapping >
     
     < servlet >
         < servlet-name >SpringMVC</ servlet-name >
         < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class >
         < init-param >
             < param-name >contextConfigLocation</ param-name >
             < param-value >classpath:Servlet.xml</ param-value >
         </ init-param >
         < load-on-startup >1</ load-on-startup >
     </ servlet >
     
     < servlet-mapping >
         < servlet-name >SpringMVC</ servlet-name >
         < url-pattern >/</ url-pattern >
     </ servlet-mapping >   
     
     < welcome-file-list >
         < welcome-file >index.html</ welcome-file >     
     </ welcome-file-list >
</ web-app >

  2.Servlet.xml内容: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<? 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:context = "http://www.springframework.org/schema/context"
     xmlns:mvc = "http://www.springframework.org/schema/mvc"
     xsi:schemaLocation="http://www.springframework.org/schema/beans               
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd      
            http://www.springframework.org/schema/context      
            http://www.springframework.org/schema/context/spring-context-3.2.xsd     
            http://www.springframework.org/schema/mvc      
            http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
            
      <!-- 组件自动扫描 -->      
      < context:component-scan  base-package = "com.tliu.case2.web" /> 
      
      <!--主要作用于@Controller激活该模式下面是一种简写形式
           它会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter,
           是spring MVC为@Controllers分发请求所必须的   -->                      
      < mvc:annotation-driven />
      
      <!-- 配置JSON视图 -->
      < bean  id = "mappingJacksonHttpMessageConverter"  class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
        < property  name = "supportedMediaTypes" >
            < list >
                < value >application/json;charset=UTF-8</ value >
            </ list >
        </ property >     
        < property  name = "objectMapper" >
            < bean  class = "org.codehaus.jackson.map.ObjectMapper" >
                < property  name = "dateFormat" >
                    < bean  class = "java.text.SimpleDateFormat" >
                        < constructor-arg  index = "0"  type = "java.lang.String"  value = "yyyy-MM-dd HH:mm:ss" />
                    </ bean >
                </ property >
            </ bean >
        </ property >
      </ bean >
      < bean  id = "stringHttpMessageConverter"  class = "org.springframework.http.converter.StringHttpMessageConverter" />
      < bean  id = "requestMappingHandlerAdapter"  class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >
        < property  name = "messageConverters" >
            < list >
                < ref  bean = "mappingJacksonHttpMessageConverter" />
                < ref  bean = "stringHttpMessageConverter" />
            </ list >
        </ property >
      </ bean >
     
      <!-- 配置JSP视图 -->
      < bean  id = "internalResourceViewResolver"  class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
        < property  name = "viewClass"  value = "org.springframework.web.servlet.view.JstlView" />
         < property  name = "prefix"  value = "/WEB-INF/jsp/" />
         < property  name = "suffix"  value = ".jsp" />     
         < property  name = "contentType"  value = "text/html;charset=UTF-8" />
         < property  name = "order"  value = "1" />
      </ bean >
      
     <!-- 配置FreeMark视图 -->
     < bean  id = "freeMarkerViewResolver"  class = "org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" >
         < property  name = "contentType"  value = "text/html;charset=UTF-8" />     
         < property  name = "viewClass"  value = "org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
         < property  name = "suffix"  value = ".ftl" />
         < property  name = "cache"  value = "true" />
         < property  name = "exposeSessionAttributes"  value = "true" />
         < property  name = "exposeRequestAttributes"  value = "true" />    
         < property  name = "exposeSpringMacroHelpers"  value = "true" />
         <!-- 在页面中使用${rc.contextPath}就可获得contextPath -->
         < property  name = "requestContextAttribute"  value = "rc" />
         < property  name = "order"  value = "0" />
     </ bean >
     
     < bean  id = "freemarkConfig"  class = "org.springframework.beans.factory.config.PropertiesFactoryBean" >
         < property  name = "location"  value = "classpath:freemark.properties" />
     </ bean >
     
     < bean  id = "fmXmlEscape"  class = "freemarker.template.utility.XmlEscape" />
     
     < bean  id = "FreeMarkerConfigurer"  class = "org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" >
         < property  name = "templateLoaderPath"  value = "/WEB-INF/ftl/" />
         < property  name = "defaultEncoding"  value = "UTF-8" />
         < property  name = "freemarkerSettings"  ref = "freemarkConfig" />
         < property  name = "freemarkerVariables" >
             < map >
                 < entry  key = "xml_escape"  value-ref = "fmXmlEscape" />
             </ map >
         </ property >
     </ bean >
     
     <!-- 文件上传配置注意:这里申明的id必须为multipartResolver -->
     < bean  id = "multipartResolver"  class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" >
        < property  name = "maxUploadSize"  value = "500000" />
     </ bean >
     
     <!-- 简单的异常处理 -->
     < bean  id = "exceptionResolver"  class = "org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" >
         < property  name = "exceptionMappings" >
             < props >
                 <!-- 映射目录为/WEB-INF/jsp/error/upload_error.jsp -->
                 < prop  key = "org.springframework.web.multipart.MaxUploadSizeExceededException" >/error/upload_error</ prop >
             </ props >
         </ property >
     </ bean >
     
     <!-- 对静态资源文件的访问 -->
     < mvc:resources  mapping = "/images/**"  location = "/images/"  cache-period = "31556926" />
         
     < mvc:resources  mapping = "/js/**"  location = "/js/"  cache-period = "31556926"  />
         
     < mvc:resources  mapping = "/css/**"  location = "/css/"  cache-period = "31556926"  />     
     
     < mvc:resources  mapping = "/upload/**"  location = "/upload/"  cache-period = "31556926"  />   
</ beans >

转自:http://my.oschina.net/u/1859292/blog/309812

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值