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,
是springMVC为@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-ddHH: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
相关推荐
在这个"springMVC 多视图配置(Jsp Freemarket Json)实例"中,我们将探讨如何在 SpringMVC 中设置多种视图解析器来支持 Jsp、FreeMarker 和 Json 格式的响应。 **1. 视图解析器 (View Resolver)** 在 SpringMVC ...
比如,如果逻辑视图名为"home",且prefix为"/WEB-INF/jsp/",suffix为".jsp",那么视图解析器会查找"/WEB-INF/jsp/home.jsp"作为实际的视图资源。 视图解析器的工作流程大致如下: 1. 控制器处理完请求后,返回一个...
然后,在`dispatcher.xml`(SpringMVC的配置文件)中,我们需要配置视图解析器,比如`InternalResourceViewResolver`,以处理视图的解析工作。视图解析器的配置中通常包含前缀和后缀,这样视图名称会被解析为完整的...
2. `jackson-core-2.4.2.jar`: Jackson核心库提供了基本的JSON解析和生成功能。它是其他Jackson模块(如databind和annotations)的基础,包含了流式API(JsonParser和JsonGenerator)以及数据绑定的基础结构。 3. `...
总结,Spring MVC处理JSON数据的关键在于引入正确的jar包(如Jackson库),配置Spring MVC以支持JSON,以及在控制器中使用适当的注解。通过理解这些基础知识,开发者可以有效地在Spring MVC应用中进行JSON数据的交互...
在 SpringMVC 中,需要在 web.xml 文件中声明 SpringMVC 框架,并在 springMVC 配置文件中添加组件扫描和视图解析器的配置。 五、结论 SpringMVC 及视图解析器是 Spring 框架中的一部分,提供了一种灵活的方式来...
4. **配置文件**:`servlet-context.xml` 或 `web.xml` 是 Spring MVC 的核心配置文件,用于定义 DispatcherServlet、Bean 定义、视图解析器等关键组件。 5. **Bean 定义**:在配置文件中,我们需要定义 Controller...
Spring MVC默认提供了一些视图解析器,如InternalResourceViewResolver用于处理JSP视图,而JsonViewResolver可以处理JSON响应。但为了实现自定义多视图,我们可能需要创建自己的视图解析器或者扩展现有的。 例如,...
- **InternalResourceViewResolver**:最常用的视图解析器,可以配置前缀和后缀,例如,如果逻辑视图名为"user",则实际查找的视图路径为"prefix/user.suffix",默认的后缀是".jsp"。 - **BeanNameViewResolver**...
SpringMVC 开发json接口Demo(含数据库、jar包)。包含:1、SpringMVC 开发json接口.docx;2、springmvc_project.rar;3、students_manage.sql
例如,可以同时配置JSTL视图解析器和Thymeleaf视图解析器。SpringMVC会按照配置的顺序尝试这些解析器,直到找到一个能成功解析视图名的解析器。 在处理多视图支持时,Controller可以返回不同的视图名,根据业务逻辑...
SpringMVC提供了一个名为ViewResolver的接口,它是视图解析器,用于根据逻辑视图名查找实际的视图对象。 SpringMVC默认支持JSP视图解析,通过InternalResourceViewResolver实现。配置时,我们可以设置前缀和后缀,...
在处理JSON请求和响应时,DispatcherServlet会通过HandlerAdapter找到合适的Handler(控制器)来执行,并通过ViewResolver解析视图,将结果以JSON格式返回给客户端。 接着,我们引入JSON库。常见的JSON库有Jackson...
3. **ModelAndView与ResponseBody**:在控制器方法中,我们可以通过`ModelAndView`对象返回视图和模型数据,但为了返回JSON,可以使用`@ResponseBody`注解。这个注解告诉Spring MVC直接将方法的返回值转换为HTTP响应...
**IDEA + Gradle + SpringMVC + Json:构建现代Web应用** 在当前快速发展的IT行业中,集成开发环境(IDE)IntelliJ IDEA、构建工具Gradle、MVC框架Spring MVC以及数据交换格式Json,是构建高效、灵活的Java Web应用...
本话题将详细讲解如何在Spring MVC框架中整合Velocity和JSP,实现多视图解析器的功能,从而根据需求返回不同的视图。 **1. Velocity模板引擎** Velocity是一个开源的Java模板引擎,它允许开发者将业务逻辑与展示...
在SpringMVC中,请求由DispatcherServlet分发,通过处理器映射器找到相应的控制器方法,然后将处理结果通过视图解析器返回给用户。 2. **MyEclipse集成环境**:MyEclipse是一款强大的Java EE集成开发环境,它支持...
2. **配置SpringMVC**:在`src/main/webapp/WEB-INF`目录下创建`servlet-context.xml`,配置SpringMVC的DispatcherServlet,包括视图解析器、视图技术(如JSP或Thymeleaf)、以及各种处理器映射器和适配器。...
SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构。在现代Web开发中,JSON(JavaScript Object Notation)已成为数据交换的主要格式,尤其是在前后端分离的架构中。SpringMVC...
6. **FreeMarker模板文件**:如`.ftl`文件,用于生成HTML页面,通过Spring MVC的视图解析器与Java对象数据结合。 这个示例项目可以帮助开发者理解和学习如何将这些组件集成在一起,构建一个完整的Java Web应用。...