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整合实例,大家可以参考我的如下几篇博文:
如果你是使用或者想学习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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。