- 首先用IDE建一个web工程。(这个就不详细介绍了)
- 引入响应的jar包
- 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
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
|
<?
xml
version
=
"1.0"
?>
<
web-app
xmlns
=
"http://java.sun.com/xml/ns/javaee"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version
=
"3.0"
>
<!-- Spring 服务层的配置文件 -->
<
context-param
>
<
param-name
>contextConfigLocation</
param-name
>
<
param-value
>classpath:applicationContext.xml</
param-value
>
</
context-param
>
<!-- Spring 容器启动监听器 -->
<
listener
>
<
listener-class
>org.springframework.web.context.ContextLoaderListener
</
listener-class
>
</
listener
>
<
servlet
>
<
servlet-name
>springmvc</
servlet-name
>
<
servlet-class
>org.springframework.web.servlet.DispatcherServlet
</
servlet-class
>
<
load-on-startup
>1</
load-on-startup
>
</
servlet
>
<!--为DispatcherServlet建立映射 -->
<
servlet-mapping
>
<
servlet-name
>springmvc</
servlet-name
>
<
url-pattern
>/</
url-pattern
>
</
servlet-mapping
>
</
web-app
>
SpringMVC另外一个重要的配置文件。
DispatcherServlet会根绝web.xml中配置的<
servlet-name
>去找<
servlet-name
>-servlet.xml的文件来加载spring的一些配置信息。我这里就应该取名叫springmvc-servlet.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xsi:schemaLocation="http://www.springframework.org/schema/beans
<!--对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<
context:component-scan
base-package
=
"com.liba.spring.mvc"
/>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射-->
<
bean
class
=
"org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
/>
<!--以下三种视图配置根据需要任选一种即可 -->
<!-- 一般的视图配置 -->
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>-->
<!-- 针对freemarker的视图配置 -->
<
bean
id
=
"viewResolver"
class
=
"org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"
>
<
property
name
=
"cache"
value
=
"true"
/>
<
property
name
=
"prefix"
value
=
""
/>
<
property
name
=
"suffix"
value
=
".ftl"
/>
<
property
name
=
"contentType"
value
=
"text/html;charset=UTF-8"
></
property
>
<
property
name
=
"requestContextAttribute"
value
=
"request"
/>
<
property
name
=
"exposeSpringMacroHelpers"
value
=
"true"
/>
<
property
name
=
"exposeRequestAttributes"
value
=
"true"
/>
<
property
name
=
"exposeSessionAttributes"
value
=
"true"
/>
</
bean
>
<!-- View resolvers can also be configured with ResourceBundles or XML files.
If you need different view resolving based on Locale, you have to use the
resource bundle resolver. -->
<!-- 这个是针对返回视图还是json值的视图配置 来分别处理同步和异步请求 -->
<!--<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="favorParameter" value="true" />
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="requestContextAttribute" value="request" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
</bean>
</list>
</property>
<property name="defaultContentType" value="text/html" />
</bean>
-->
</
beans
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<
bean
id
=
"freemarkerConfig"
class
=
"org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"
>
<
property
name
=
"templateLoaderPath"
value
=
"/WEB-INF/view/"
/>
<
property
name
=
"freemarkerSettings"
>
<
props
>
<
prop
key
=
"template_update_delay"
>0</
prop
>
<
prop
key
=
"default_encoding"
>UTF-8</
prop
>
<
prop
key
=
"number_format"
>0.##########</
prop
>
<
prop
key
=
"datetime_format"
>yyyy-MM-dd HH:mm:ss</
prop
>
<
prop
key
=
"classic_compatible"
>true</
prop
>
<
prop
key
=
"template_exception_handler"
>ignore</
prop
>
</
props
>
</
property
>
</
bean
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import
javax.servlet.http.HttpServletRequest;
import
org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.servlet.ModelAndView;
@Controller
public
class
SpringMvcController {
@RequestMapping
(value=
"/welcome"
,method={RequestMethod.GET})
public
ModelAndView getFirstPage(HttpServletRequest request) {
//welcom就是视图的名称(welcom.ftl)
ModelAndView mv =
new
ModelAndView(
"welcom"
);
mv.addObject(
"name"
,
"My First Spring Mvc"
);
return
mv;
}
}
|
7.welcom.ftl页面
1
2
3
4
5
6
7
8
9
10
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=ISO-8859-1"
>
<
title
>Insert title here</
title
>
</
head
>
<
body
>
Hello ${name}
</
body
>
</
html
>
|
Hello My First Spring Mvc