基于注解的SPRINGMVC+FREEMARKER环境搭建

  • 引入相应的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>*.do</url-pattern>
</servlet-mapping>
</web-app>
  1. SpringMVC另外一个重要的配置文件。 
  1. 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
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context
    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"
    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"/>
        p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>-->
    
    <!-- 针对freemarker的视图配置 在springmvc的配置文件中加-->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="cache" value="true" />
        <property name="prefix" value="" />   <!-- prefix可以加可以不加,因为FreeMarkerConfigurer中有模板文件夹目录,就是前缀 -->
        <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. 
        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>
        
            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. 如果是使用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>

  1. 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


@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;
    }

}

    @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就是视图的名称(welcom.ftl)
        ModelAndView mv = new ModelAndView("welcom");
        mv.addObject(
        mv.addObject("name", "My First Spring Mvc");
        
        return mv;
    }
    }
}
  1. 在url上敲http://localhost:8080/welcome就会到WEB-INF/view/welcom.ftl页面渲染数据
  1. 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>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值