- 首先用IDE建一个web工程。(这个就不详细介绍了)
- 引入响应的jar包
- web.xml
<? 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
xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p ="http://www.springframework.org/schema/p"
xmlns:context ="http://www.springframework.org/schema/context"
xsi:schemaLocation ="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd" >
<!-- 对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 >
- 如果是使用freemarker最为视图模板需要再spring的配置文件applicationContext.xml中加入以下配置
< 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 >
- Controller建立
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;
}
}
- welcom.ftl页面
<! 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
基于注解的SPRINGMVC+FREEMARKER环境搭建
最新推荐文章于 2021-03-04 09:18:49 发布