基于注解的SpringMVC+freemarker环境搭建
这种帖子网上也有不少,自己写出来也是做为一种补充,SpringMvc+freemarker确实是MVC不错的实现。废话不多说了,下面是自己利用eclipse搭建的一个简单的springMVC+freemarker
1 首先用IDE建一个web工程。(这个就不详细介绍了)
2 引入响应的jar包
3 一切web工程的配置都从web.xml开始,现在就看下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>
<?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.xsdhttp://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 /> <!--以下三种视图配置根据需要任选一种即可 --><!-- 一般的视图配置 --><!--<bean p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>--><!-- 针对freemarker的视图配置 --><bean id="viewResolver"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值的视图配置 来分别处理同步和异步请求 --><!--<beanvalue="text/html" /><entry key="json" value="application/json" /></map></property><property name="favorParameter" value="true" /><property name="viewResolvers"><list><bean /><bean id="viewResolver"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>
<bean id="freemarkerConfig"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>
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;@Controllerpublic 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;}}
<!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>