SpringMVC整合FreeMarker实例
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – Jersey客户端/ JAX-RS和可选(不是默认)@QueryParam
- Java Config等效于conversionService / FormattingConversi
- Java数组的三种初始化方式
- NoClassDefFoundError:java中的org / apache / poi / ss /
- rx-java – 在RxJava中取消Observable
- java – 查找仅包含给定字符的单词:RegEx
- Java为什么字符串的长度为36,而它只包含18个字符?
- java – 用另一个字符串环绕字符串
- java – 如何避免在wicket中请求结束时重置FileUploadField
- java – 当标志在不同的线程中更改时,循环不结束