spring mvc freemarker整合现在已经是很流行的一种架构模式了,写这篇章目的是为了方便以后自己的配置,也希望能为刚学习freemarker的同学一点帮助,废话不多说直接贴上代码:
使用工具:eclipse+maven
整体结构
1、先导入jar包
<!-- freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
其中我遇到一个错误java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS
原因就是freemarker版本太低了,Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfigurationFactory原因是少了spring-context-support,如果同样遇到的朋友需要注意一下。
2、配置applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<context:component-scan base-package="com.yejiu.spring.freemarker.controller" />
<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>
</beans>
3、在WEB-INF配置springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 使用注解的包,包括子集 -->
<context:component-scan base-package="com.yejiu.spring.freemarker.controller" />
<!-- 视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".ftl"></property>
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
</beans>
4、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
http://www.springmodules.org/schema/cache/springmodules-cache.xsd http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd
" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Freemaker</display-name>
<!-- 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>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
5、在view创建hello.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>${title}</title>
</head>
<body>
${content}
</body>
</html>
6、写一个控制器测试
package com.yejiu.spring.freemarker.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/view")
public class HelloWorkController {
@RequestMapping("/hello")
public String hellowork(Model model){
model.addAttribute("title", "freemarker");
model.addAttribute("content", "welcome to freemarker");
return "hello";
}
}
到此一个freemarker的整合就完成了,就是那么容易
- 大小: 25.3 KB
分享到:
相关推荐
在IT行业中,Spring框架是Java应用开发中的一个核心组件,它提供了一个全面的编程...通过这个示例源码,你可以了解到Spring与Freemarker整合的具体实现,以及在实际项目中如何运用这一组合来构建高效、灵活的Web应用。
在本项目中,我们主要探讨的是如何将Spring MVC 3.0、MyBatis 3 和 Freemarker 2.3 这三个强大的技术框架整合在一起,以构建一个高效且灵活的Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...
**Spring MVC与FreeMarker整合应用详解** Spring MVC是Spring框架的一部分,它是一个强大的Web应用程序开发模型,用于构建灵活、可维护的Java Web应用。而FreeMarker则是一个模板引擎,允许开发者将逻辑代码与呈现...
标题中的“Spring MVC, Tiles, Freemarker集成”指的是在Java Web开发中,将Spring MVC作为控制器框架,Tiles作为页面布局工具,而Freemarker作为视图模板引擎进行整合使用的技术方案。这种集成可以帮助开发者构建...
综上所述,easycms开源系统利用了Spring MVC的MVC架构来处理Web请求,MyBatis来处理数据库操作,FreeMarker则作为模板引擎生成动态视图。这样的组合为开发高效、灵活的内容管理系统提供了坚实的基础。通过学习和使用...
本项目结合了Freemarker、Spring Security、Spring MVC和Spring Data JPA,旨在实现前端JTable的简单CRUD(创建、读取、更新、删除)功能。以下是这些技术的详细介绍及其在项目中的应用。 **Freemarker** 是一个...
在整合Spring MVC、Spring和Spring JDBC的实例中,你可能会看到以下几个关键部分: 1. **配置文件**:包括Spring的主配置文件(如`applicationContext.xml`),其中定义了Bean的配置,包括DataSource、JdbcTemplate...
3. 集成Spring4:配置Spring的ApplicationContext,声明所需的bean,包括DAO、Service等。可以利用Spring的注解如`@Autowired`进行依赖注入。 4. 使用Hibernate4:配置Hibernate的SessionFactory,创建实体类并用`@...
在整合Spring MVC、Spring和Hibernate时,通常步骤如下: 1. 配置Spring:首先,我们需要配置Spring的ApplicationContext,定义Bean并管理它们的生命周期。这通常通过XML或Java配置完成,包括Spring MVC的...
标题“Spring3.1整合FreeMarker2.3.19”指的是在Spring 3.1版本的框架中集成FreeMarker 2.3.19模板引擎的过程和相关知识点。FreeMarker是一个开源的Java库,用于生成动态HTML、XML或其他类型的文本,常用于Web应用...
15. **整合其他技术**:Spring MVC可以轻松集成其他技术,如MyBatis、Hibernate等持久层框架,以及Spring Data JPA、Spring Security等。 通过下载提供的Spring MVC依赖包,你可以快速开始构建自己的Spring MVC项目...
《Spring MVC与MYBatis企业应用实战》是一本深度探讨如何在实际企业环境中集成和运用Spring MVC和MYBatis两大主流技术的书籍。Spring MVC作为Spring框架的重要组成部分,是Java Web开发中的强大控制器,而MYBatis则...
【SpringMVC-Spring-Mybatis-Freemarker整合】是一个常见的Java Web开发技术栈,主要涉及了四个关键组件:Spring MVC(模型-视图-控制器)、Spring(核心框架)、Mybatis(持久层框架)以及Freemarker(模板引擎)。...
本项目"基于Annoation的Spring 2.5+ Hibernate + Freemarker整合"是将这三个框架集成在一起,实现了一个高效、灵活的Web应用程序开发环境。让我们详细探讨这三个框架及其在该项目中的整合应用。 首先,Spring 2.5是...
2. **Eclipse集成Spring MVC**: 在Eclipse中,可以使用Spring Tools Suite(STS)插件,这是一个专门用于Spring开发的扩展。通过STS,可以快速创建Spring MVC项目模板,包括配置web.xml、spring-servlet.xml等核心...
对于Spring,可以选择Spring Boot项目,因为它集成了许多必要的依赖,如Spring MVC和JavaMailSender。对于Freemarker,需要在`pom.xml`文件中添加Freemarker和JavaMail的相关依赖: ```xml <groupId>org.spring...
在整合JPA(Java Persistence API)后,Spring MVC项目能够实现数据持久化,为数据库操作提供了方便。 JPA是Java EE规范,它定义了一个接口,允许开发者以面向对象的方式处理关系数据库。JPA通过ORM(对象关系映射...
《Spring MVC、Hibernate与FreeMarker整合开源项目源码解析》 在Java开发领域,Spring MVC、Hibernate和FreeMarker是三个非常重要的技术框架,它们分别在Web应用的模型-视图-控制器(MVC)架构、对象关系映射(ORM...
Spring MVC支持多种视图技术,如JSP、FreeMarker等。 接下来,Hibernate是一个强大的对象关系映射(Object-Relational Mapping,ORM)框架,它简化了Java应用程序与数据库之间的交互。Hibernate允许开发者用Java...
5. 集成Spring Data JPA或MyBatis的Mapper,实现更高级的数据访问功能。 6. 整合Spring Security或Shiro进行安全控制,保护敏感资源。 7. 使用Spring MVC的视图技术,如Thymeleaf或FreeMarker,构建前端页面。 8. ...