SpringMVC的架设,使用Freemarker模板引擎

自行编译完spring4.0后,要架设以Freemaker为模板引擎的网站,同时还要整合Hibernate3.6。这当然要用Spring的MVC架构。我希望是注解模式完成,经过几次查询和修改,终于架设完成,现记录一下,以备后面使用。

准备工作:自行编译Spring4,也可以网上下载已经编译好的包;下载Hibernate3.6;下载各类依赖包,以下为我列出的各类依赖包:

antlr-2.7.6.jar
aopalliance-1.0.jar
aspectj.jar
c3p0-0.9.1.2.jar
commons-collections-3.2.1.jar
commons-dbcp-1.4.jar
commons-logging-1.1.3.jar
commons-pool-1.5.4.jar
dom4j-1.6.1.jar
freemarker.jar
jstl.jar
standard.jar
slf4j-nop-1.7.5.jar
mysql-connector-java-5.1.25-bin.jar

其中的某些包不是必需的,如jstl.jar+standerd是为jstl模板准备的,可以不用添加;commons-dbcp-1.4.jar+commons-pool-1.5.4.jar是tomcat的mysql连接池,在本文中用的是c3p0连接池,所以tomcat的连接池也可以不用加入。这些包准备好后就要添加Spring4所有的包(除了一些test包),Hibernate3.6的核心包,还有Hibernate的jpa包。

新建一个web项目后,这里用的是Tomcat7,相关的xml配置如下(这里配置只解析.html的文件)

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  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_3_0.xsd"
  id="WebApp_ID" version="3.0">
  <display-name>mvc0201</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>triplogs</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>triplogs</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

</web-app>

在web.xml的相同目录下新建一个triplogs-servlet.xml的文件,其内容如下:

triplogs-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:context="http://www.springframework.org/schema/context"
  xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/tx
       	   http://www.springframework.org/schema/tx/spring-tx.xsd
       	   http://www.springframework.org/schema/mvc
       	   http://www.springframework.org/schema/mvc/spring-mvc.xsd">

  <!-- 启动事务管理的注解模式 -->
  <context:annotation-config />
  <!-- Spring 的组件自动描的包的目录  -->
  <context:component-scan base-package="org.triplog.mvc0201" />

  <!-- <aop:aspectj-autoproxy /> -->

  <!-- 数据库 -->
  <context:property-placeholder location="/WEB-INF/jdbc.properties" />
  <!--<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" /> -->
  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">
    <property name="driverClass" value="${jdbc.driverClassName}" />
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
  </bean>

  <!-- Hibernate3 -->
  <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- hibernate注解包扫描的位置 -->
    <property name="packagesToScan">
      <list>
        <value>org.triplog.mvc0201.model</value>
      </list>
    </property>

    <!-- Hibernate配置 -->
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
        <prop key="hibernate.show_sql">true</prop>
      </props>
    </property>
  </bean>
  <!-- Spring对Hibernate的事务管理 -->
  <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
  </bean>
  <tx:annotation-driven transaction-manager="transactionManager" />

  <!-- 以下为SpringMVC内容 -->
  <!-- 支持spring4.0新的mvc注解 -->
  <mvc:annotation-driven />
  <!-- 启动Spring MVC的注解功能 -->
  <bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  <!-- 地址映射 -->
  <bean id="handlerMapping"
    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
  </bean>
  <!-- FreeMarker -->
  <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
    <property name="contentType" value="text/html; charset=utf-8"/>
  </bean>
  <bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <!-- 模板根目录 -->
    <property name="templateLoaderPaths" value="/static/templates/" />
    <!-- 编码格式 -->
    <property name="defaultEncoding" value="utf-8" />
  </bean>

</beans>

因为已经配置了模板加载的默认根目录,所以不用配置模板前辍了,同时,个人认为必要配置后辍,所以后辍也省了。

在web.xml的相同目录下新建jdbc.properties文件,添加以下内容:

jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sampledb?characterEncoding=utf8&useUnicode=true
jdbc.username=root
jdbc.password=123456

配置文件到此全部完成,现在写两个文件测试一下。新建包org.triplog.mvc0201.controller在该包下新建一个类HelloIndex,代码如下:

HelloIndex.java:

package org.triplog.mvc0201.controller;

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

@Controller
public class HelloIndex {

  @RequestMapping({"/index.html","hello.html"})
  public String Index(Model model){

    model.addAttribute("message", "这是主页!");
    return "hellotpl.html";
  }

}

在WEB-INF的同级目录新建如下的目录结构static/templates,在这个文件夹下新建一个html文件,命名为

hellotpl.html, 内容如下:

<!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>${message } -- Insert title here</title>
</head>
<body>

<h5>这是主页。</h5>
</body>
</html>

至此所有代码相关工作完成,把spirng和hibernate及其依赖包放入/WEB-INF/lib目录下,测试运行,结果如下:

成功!

以上摘自的推酷网上的,感觉不错,特意摘下来!

http://www.tuicool.com/articles/3Iva6j

推酷是摘自网友的博客:

http://cleans.iteye.com/blog/1949611?utm_source=tuicool

时间: 2024-11-03 22:26:11

SpringMVC的架设,使用Freemarker模板引擎的相关文章

Spring Boot? 使用freemarker模板引擎渲染web视图

效果图 代码 package com.wls.integrateplugs.hello.controller; /** * Created by wls on 2017/8/24. */ import java.util.Locale; import java.util.UUID; import javax.servlet.http.HttpSession; import com.sun.org.apache.regexp.internal.RE; import org.springframew

Spring Boot 揭秘与实战(七) 实用技术篇 - FreeMarker 模板引擎

文章目录 1. FreeMaker 代替 JSP 作为页面渲染 2. 生成静态文件 3. 扩展阅读 4. 源代码 Spring Boot 提供了很多模板引擎的支持,例如 FreeMarker.Thymeleaf.这篇,我们看下 Spring Boot 如何集成和使用 FreeMarker. Spring Boot 中使用 FreeMarker 模板非常简单方便.如果想要使用FreeMarker 模板引擎,首先,修改 POM 文件,添加依赖. FreeMaker 代替 JSP 作为页面渲染 <de

Java之利用Freemarker模板引擎实现代码生成器,提高效率

http://blog.csdn.net/huangwenyi1010/article/details/71249258 目录(?)[-] 开心一笑 视频教程 提出问题 解决问题 前言 技术选型 实现思路 首先假如在数据库中有一张表 ay_test 我们首先要获取数据库的连接这里我只贴出相关的代码 获取数据库表的元数据 最后根据元数据获取表字段注释等等生成相关的文件 代码实现 Java代码实现 FreeMarkerTemplateUtils工具类 实体类 ColumnClass freemark

SpringBoot获取Freemarker模板引擎,生成HTML代码

今天用Ajax异步添加评论,加载Freemarker模板引擎,生成模板模块 1.新建Freemarker模板 <li id="${comment.oId}"> <div> <div class="avatar tooltipped tooltipped-n" aria-label="${comment.commentName}" style="background-image: url(${comment.

freemarker模板引擎 常用标签

freemarker正常生成HTML的模板引擎,公司需求将书籍来源的数据发放到不同的渠道,每个渠道生成特定的模板,这样数据自动生成相应的格式,主要是生成xml格式,所以根据网上的Demo改成了对应项目测试的Demo.--------------------此为背景. 正常的模板文件.flt的,但是发现改成.xml格式的也完全没有问题,我表示非常高兴,哇卡卡卡~ 网上有很多标签大全,我就捡我用过的标签写:(不断的补充ing...) 1.<#if></#if> <#elseif&

Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则.强大的功能.高效的渲染效率.详尽的帮助说明与不断的更新与维护.常见的前端模板引擎有: 常用的java后台模板引擎:jsp.FreeMarker.Velocity等. 请不要迷恋速度,为了推广的测试可能是片面的,好的模板引擎经得起时间考验,建议大家选择成熟的.常用的模板引擎.另外不管前后端的模板引擎

FreeMarker模板引擎基础知识

FreeMarker基础简介 FreeMarker是一款模板引擎:一种基于模板,用来生成输出文本的通用工具.它是为java程序员提供的一个开发包或者说是库类,一般的用法就是Java程序通过SQL查询到数据,FreeMarker使用模板生成文件页面来显示已经准备好的数据.也就是 输出= 模板+数据模型. FreeMarker支持的数据类型有: 标量 字符串 数字 布尔值 日期 容器 哈希表 系列 集 子程序 方法和函数 用户自定义指令(比如宏) 其他 节点 模板(FTL编程)是由如下部分混合而成的

##Freemarker模板引擎的分享

网页静态化技术 -Freemarker 原因:在我们开发过程中,一般会大量的网页静态化部分的解决问题,例如新闻网站的那些静态新闻,再比如我们大型的电商项目,每个商品的详情页,都是一些静态资源,如果每次用户访问都要去数据库中访问,那么无疑会造成高并发的现象,而且造成资源的浪费. 技术:网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据.另外网页静态化还有利于SEO. 另外我们如果将网页以

springMVC加载远程freemarker模板文件

在一个大网站里,有很多子域名,也就是有很多子系统,这些子系统由不同的团队负责,对整个网站的风格的风格至少得要是一致的(最基本的页头.页尾必须一致),这个时候得提供一份统一的页头.页尾以及公共的JS.css等内容,但如果是直接给源代码(ftl/js/css)的形式,对于后期的升级维护必然增加不必要的麻烦,必须得只有一个维护这个代码. freemarker提供了远程模板加载的功能,在各个业务方里就像使用本地的模板一样使用远程的统一的模板代码. 1.编写自定义的模板加载器(继续freemarker的接