您的位置:首页 > 编程语言 > Java开发

JAVA Freemarker(2)---在IDEA中 SpringMVC整合Freemarker的详细步骤

2017-09-27 15:31 627 查看

第一步:build.gradle配置引入jar包,

group 'wyscha'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'

webAppDirName = 'webapp'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

sourceSets {
main {
java {
srcDir 'activity/src/main/java'
}

resources {
srcDir 'core/src/main/resources'
}
}

test {
java {
srcDir 'core/src/test/java'
}
}
}

dependencies {
//spring
compile group: 'org.springframework', name: 'spring-core', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-aop', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-aspects', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-context-support', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-context', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-beans', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-tx', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-test', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-orm', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-oxm', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-web', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-jdbc', version: '4.2.8.RELEASE'
compile group: 'org.springframework', name: 'spring-expression', version: '4.2.8.RELEASE'

//排程
compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.2.1'
//拼音
compile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.0'
//excel
compile group: 'org.apache.poi', name: 'poi', version: '3.9'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.9'

compile group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '2.6.0'

//activiti
compile group: 'org.activiti', name: 'activiti-engine', version: '6.0.0'
compile group: 'org.activiti', name: 'activiti-spring', version: '6.0.0'
//mybatis
compile group: 'org.mybatis', name: 'mybatis', version: '3.3.1'
compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.2.5'
compile group: 'org.mybatis.generator', name: 'mybatis-generator-core', version: '1.3.5'

//数据库
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.40'
compile files('webapp/WEB-INF/lib/sqljdbc41.jar')
compile files('webapp/WEB-INF/lib/bcprov-jdk15-140.jar')
compile files('webapp/WEB-INF/lib/ezmorph-1.0.6.jar')
compile files('webapp/WEB-INF/lib/json-lib-2.3-jdk13.jar')
compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4'
compile group: 'com.alibaba', name: 'druid', version: '1.1.0'

//公共
compile group: 'commons-lang', name: 'commons-lang', version: '2.5'
compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.2'
compile group: 'commons-configuration', name: 'commons-configuration', version: '1.10'
compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
compile group: 'commons-io', name: 'commons-io', version: '2.4'

compile group: 'org.freemarker', name: 'freemarker', version: '2.3.20'
//httpclient
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2'

//json
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.24'
//compile 'net.sf.json-lib:json-lib:2.4:jdk15'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.8'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.8'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.8.8'

//日志
compile 'org.slf4j:slf4j-api:1.7.14'
compile 'ch.qos.logback:logback-core:1.1.3'
compile 'ch.qos.logback:logback-classic:1.1.3'
compile group: 'org.logback-extensions', name: 'logback-ext-spring', version: '0.1.4'

//容器标签
compile group: 'javax', name: 'javaee-api', version: '7.0'

runtime("jstl:jstl:1.2")
compile group: 'taglibs', name: 'standard', version: '1.1.2'

testCompile group: 'junit', name: 'junit', version: '4.12'
}

/*
idea 工具下启用此配置
*/
apply plugin: 'idea'
idea {
module {
inheritOutputDirs = false
outputDir = file("webapp/WEB-INF/classes/")
}
}

/*
apply plugin: 'eclipse-wtp'
eclipse{
classpath{
defaultOutputDir = file('webapp/WEB-INF/classes/')
}
}
*/

task copyJ2eeWebJars(type: Copy) {
from configurations.runtime
into 'webapp/WEB-INF/lib'
exclude '**/*sqljdbc41*', '**/*json-lib-2.3-jdk13*','**/*ezmorph-1.0.6*','**/*bcprov-jdk15-140*'
}


第二步:在src/main/resources/conf新建Freemarker文件freemarker.properties,

template_update_delay=0
default_encoding=UTF-8
output_encoding=UTF-8
number_format=0.##########
classic_compatible=true
template_exception_handler=ignore
locale=zh_CN
date_format=yyyy-MM-dd
time_format=HH:mm:ss
datetime_format=yyyy-MM-dd HH:mm:ss


第三步:在springmvc.xml中添加freemarker配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" 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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">

<mvc:annotation-driven/>

<context:component-scan base-package="com.cloud.wyscha">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>

<!-- 设置freeMarker的配置文件路径 -->
<bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:conf/freemarker.properties"/>
</bean>

<!-- 配置freeMarker的模板路径 -->
<bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerSettings" ref="freemarkerConfiguration" />
<property name="templateLoaderPath" value="/WEB-INF/ftl/" />
<property name="freemarkerVariables">
<map>
<!-- 设置一些常用全局变量 -->
<entry key="xml_escape" value-ref="fmXmlEscape" />
</map>
</property>
</bean>

<!-- 配置freeMarker视图解析器 -->
<bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="text/html; charset=utf-8" />
<property name="cache" value="true" />
<property name="suffix" value=".ftl" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="requestContextAttribute" value="request" />
<property name="order" value="0" /><!--这段熟悉设置代表了在多视图的情况下,优先匹配的顺序。-->
</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
<property name="order" value="1" />
</bean>

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->
<property name="defaultErrorView" value="error"></property>
<!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception -->
<property name="exceptionAttribute" value="exception"></property>
<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">error</prop>
<prop key="java.lang.Throwable">error</prop>
</props>
</property>
</bean>

</beans>


第四步:编写controller文件和ftl文件

在src/main/java目录下新建包com.cloud.wyscha.base.controller;,在包下新建FreeMarkController.java,如下:

@Controller
@RequestMapping("/freemark")
public class FreeMarkController extends BaseController {

@RequestMapping("/helloWorld.action")
public ModelAndView helloWorld(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("word0","Hello");
map.put("word1","World!");
return new ModelAndView("helloWorld", map);
}

}


helloWorld.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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>${word0}${word1}</h2>
</body>
</html>


第五步:访问

http://localhost/freemark/helloWorld.action


—————————————————————————————————————————————————–

java架构师项目实战,高并发集群分布式,大数据高可用视频教程,共760G

下载地址:

https://item.taobao.com/item.htm?id=555888526201


01.高级架构师四十二个阶段高

02.Java高级系统培训架构课程148课时

03.Java高级互联网架构师课程

04.Java互联网架构Netty、Nio、Mina等-视频教程

05.Java高级架构设计2016整理-视频教程

06.架构师基础、高级片

07.Java架构师必修linux运维系列课程

08.Java高级系统培训架构课程116课时

+

hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息