加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

SpringMVC整合FreeMarker实例

发布时间:2020-12-15 07:11:55 所属栏目:Java 来源:网络整理
导读:FreeMarker作为模板引擎,是比较常用的。 FreeMarker官方文档地址为:https://freemarker.apache.org/ 现在浏览器或者翻译工具这么多,对于英文方面,我想大多数天天敲代码的,奋战在前线的同志们,对于很多编程实用单词应该不陌生,如果语文老师不是XX老师教

FreeMarker作为模板引擎,是比较常用的。

FreeMarker官方文档地址为:https://freemarker.apache.org/

现在浏览器或者翻译工具这么多,对于英文方面,我想大多数天天敲代码的,奋战在前线的同志们,对于很多编程实用单词应该不陌生,如果语文老师不是XX老师教的,我想通过Google或者其他翻译工具翻译一些意思,我想大家应该是可以看的懂,和判断是否存在问题的。

?

其实我个人英语,也不怎么样,曾经就采取过这样一种策略,来记单词,称之为"趣味单词记录法",这个法,我想只要将Good morning 读成鬼德莫你的人,应该能够很好的体会这种乐趣,记得正是这种乐趣,使我从学校到现在工作,对于英语也不是特别恐惧,当然了,这样也会导致很多问题,比如发音不标准等等。

这里不作讨论,这里想表达的还是希望,计算机专业的同胞或者其他转行或者感兴趣的朋友们,不要因为英语而停止对其研究学习或者放弃。

?

比如那些常见的Java代码生成器,基本都是通过编写ftl文件,也就是FreeMarker模板文件,通过调用对应的方法来达到代码生成的目的。

其实FreeMarker同JSP或者Volocity整合SpringMVC,并无多大的区别,web.xml基本都是那一套。

spring.xml配置的基本是扫描dao,扫描service,整合MyBatis或MyBatis Plus和配置数据源管理和使用xml或者事务注解等,如果要用到shiro或redis,也就相当于配置对应的bean。

关于Spring+SpringMVC+MyBatis整合实例或Spring+SpringMVC+MyBatis Plus整合实例,大家可以参考我的如下几篇博文:

MP实战系列(一)之入门框架搭建和使用

ssm框架整合+Ajax异步验证

maven中ssm框架快速搭建

如果你是使用或者想学习SpringBoot,可以参考如下我的几篇博文:

MP实战系列(七)之集成springboot

或者我的SpringBoot实战系列文章

当然,这些都是基于SpringBoot官方文档相关的示例+我个人一些想法和理解。

?

下面进入整合实例:

?

一、导入依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  modelVersion>4.0.0</groupId>cn.testartifactId>freemarketversion>0.0.1-SNAPSHOTpackaging>war>

  dependencies>
           dependency>
             >org.freemarker>freemarker>2.3.23>
         >
        <!-- 单元测试 -->
        >
            >junit>3.8.1scope>test spring核心包 >org.springframework>spring-test>4.3.13.RELEASE>spring-webmvc>spring-core>spring-aop>aspectj>aspectjweaver>1.5.4>aspectjrt>org.codehaus.jackson>jackson-mapper-asl>1.9.11mybatis核心包 >org.mybatis>mybatis>3.1.1>mybatis-spring>1.1.1>mysql>mysql-connector-java>5.1.21>c3p0>0.9.1.2type>jar打印日志 >org.slf4j>slf4j-api>1.7.5>slf4j-log4j12>log4j>1.2.17>jstl>1.2>spring-context-support>

         https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api >javax.servlet.jsp>jsp-api>2.1 javax.servlet-api >javax.servlet>javax.servlet-api>3.1.0 spring-web >spring-web spring-webmvc  阿里巴巴fastjson >com.alibaba>fastjson>1.2.41dbcp >org.apache.commons>commons-dbcp2>2.1.1 辅助 >com.google.code.gson>gson>2.2.4>commons-lang3>3.3.2 end -->

         swagger-mvc >com.mangofactory>swagger-springmvc>1.0.2>com.fasterxml.jackson.core>jackson-databind>2.6.6>
        
         poi -->
         >org.apache.poi>poi>3.9>poi-ooxml>
        


         https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp >com.squareup.okhttp3>okhttp>3.9.1 https://mvnrepository.com/artifact/com.squareup.okio/okio >com.squareup.okio>okio>1.13.0>
        
        
         腾讯云 >com.qcloud>cos_api>5.2.4 https://mvnrepository.com/artifact/commons-codec/commons-codec >commons-codec>1.11 https://mvnrepository.com/artifact/org.mindrot/jbcrypt >org.mindrot>jbcrypt>0.4 https://mvnrepository.com/artifact/net.coobird/thumbnailator >net.coobird> 
            >thumbnailator>0.4.8>

    >
    buildpluginsplugin>
                >org.apache.maven.plugins>maven-compiler-plugin>2.0.2configuration>
                    source>1.8target>



        finalName>${project.artifactId}>
project>

?

二、编写Spring-MVC对应的配置文件

<?xml version="1.0" encoding="UTF-8"?>
beans ="http://www.springframework.org/schema/beans"
    xmlns:xsi
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" 扫描Controller层 -->
    context:component-scan base-package="com.freemark.controller"/>


     静态资源不拦截放行 mvc:default-servlet-handler/>

     开启注解 mvc:annotation-driven />

        ="com.ffcs"></context:component-scanmvc:annotation-drivenbean id="freeMarkerConfigurer"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"property name="templateLoaderPath" value="/WEB-INF/ftl/"property="defaultEncoding"="utf-8" />
        ="freemarkerSettings"propsprop key="template_update_delay">1prop="locale">zh_CN="datetime_format">yyyy-MM-dd> 时间格式化 -->
                ="date_format"="number_format">#.##bean="freeMarkerViewResolver"="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"="cache"="true" ="prefix"="" /> 上面已经配了,这里就不用配啦 ="suffix"=".ftl" ="contentType"="text/html;charset=UTF-8" ="allowSessionOverride"="allowRequestOverride"="exposeSpringMacroHelpers"="exposeRequestAttributes"="exposeSessionAttributes"="requestContextAttribute"="request" />
    beans>  

?

三、修改web.xml

web-app xmlns:xsi xmlns="http://java.sun.com/xml/ns/javaee"="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"display-name>



  filterfilter-name>CharacterEncodingfilter-class>org.springframework.web.filter.CharacterEncodingFilterinit-param>
      param-name>encodingparam-value>UTF-8filter-mappingurl-pattern>/*servletdescription>spring mvc servletservlet-name>springMvcservlet-class>org.springframework.web.servlet.DispatcherServlet>contextConfigLocation>classpath:spring-mvc.xmlload-on-startupservlet-mapping>/>


 


web-app>

?

四、编写对应的Controller代码

package com.freemark.controller;

import org.springframework.stereotype.Controller;
 org.springframework.ui.Model;
 org.springframework.web.bind.annotation.GetMapping;

@Controller
public class TestController {
    
    @GetMapping(value="test")
    public String test(Model model) {
        model.addAttribute("userName","张三");
        return "test";
    }

}

?

五、在WEB-INF目录下新建ftl文件夹并在此文件夹下新建test.ftl文件

test.ftl

<!DOCTYPE htmlhtmlheadmeta charset="UTF-8"title>Insert title herebody
${userName}
>

?

?

完成上述步骤,启动项目,并在浏览器输入对应的url,浏览器正确返回视图,控制台无报错,表示整合成功。

说明:此次演示只是针对SpringMVC+FreeMarker

如果你想加入Spring+MySQL或者Redis+Shiro,可以增加对应的配置文件和相关依赖

简单的说,如果你想用FreeMarker,不使用JSP或者其他模板,你只需修改对应的Spring-MVC的配置文件即可,并引入对应的maven依赖。

最后写个简单的测试即可,测试是否合法没问题。

?

关于整合Shiro实例,可以参考这个博客:https://blog.csdn.net/qq_27676247/article/details/74280158

关于SpringMVC+MyBatis+Spring整合,可以参考这篇博客:http://zfei.iteye.com/blog/2367552

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读