`

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目录下,测试运行,结果如下:


 

成功!

  • 大小: 10.1 KB
0
0
分享到:
评论

相关推荐

    SpringMVC-Freemarker_Sitemesh3例子

    **Freemarker** 是一个强大的模板引擎,常用于Web应用中的视图层。它与Java无关,但可以与Java很好的结合使用。Freemarker模板语言(FTL)允许开发者用简单的语法来展示动态数据。在SpringMVC中,Freemarker作为视图...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...

    Maven+SpringMVC+Freemarker Demo

    在本Demo中,SpringMVC处理HTTP请求,调用相应的服务,执行业务逻辑,并将结果传递给Freemarker模板引擎进行渲染。 **3. Freemarker** Freemarker是一个模板语言,用于生成动态HTML或其他格式的文档。它的主要特点...

    springMvc+freemarker

    在这个"springMvc+freemarker"的项目中,我们可以看到作者用Spring MVC与FreeMarker模板引擎集成创建了一个示例应用。 首先,Spring MVC框架的主要组件包括DispatcherServlet、Controller、Model、View和...

    SpringMVC+Freemarker+Hibernate整合范例

    在SpringMVC中,可以使用FreemarkerViewResolver来配置Freemarker模板的位置,并将其设置为视图解析器。 3. **Hibernate**:Hibernate作为ORM框架,通过映射Java类到数据库表,实现了对象和关系数据库之间的转换。...

    springMVC+freemarker框架

    1. **模板语法**:FreeMarker使用简单的文本模板语言,如`${expression}`表示变量,`&lt;#if condition&gt;`表示条件判断。 2. **数据模型**:后端Java代码提供数据模型,FreeMarker模板根据这些数据动态生成内容。 3. **...

    基于注解的springmvc 整合freemarker的入门例子

    这是一个基于eclipse+springmvc+freemarker+注解的入门例子,是一个war包,import到eclipse就应该可以直接运行,但是确保maven环境到存在;我做为一个入门者,是参照了...

    springmvc+mybatis 和一个简单的freemarker代码生成工具

    SpringMVC作为Spring框架的一部分,是用于构建MVC(Model-View-Controller)架构的轻量级Web框架,而MyBatis则是一个优秀的持久层框架,它简化了数据库操作,FreeMarker则是一个动态模板引擎,常用于生成视图层的...

    springmvc+freemarker+shiro

    FreeMarker则是一个强大的模板引擎,用于生成动态网页内容;而Shiro则是Apache提供的一款轻量级的安全框架,专注于身份验证、授权和会话管理。 **SpringMVC** SpringMVC是Spring框架的一部分,它提供了一种灵活的...

    springMVC+freemarker整合实例

    SpringMVC和FreeMarker是两种在Java Web开发中广泛使用的技术。SpringMVC是一个轻量级的、基于组件的Web应用框架,它负责处理HTTP请求并分发到对应的控制器进行处理。而FreeMarker则是一个模板引擎,用于动态生成...

    SpringMVC Spring4 Hibernate4 Freemarker项目搭建

    此外,SpringMVC支持多种视图技术,包括JSP、Thymeleaf和我们项目中使用的Freemarker。 Spring4是全面的Java企业级应用开发框架,提供依赖注入(DI)、AOP(面向切面编程)、事务管理、数据访问、Web服务等众多功能...

    springmvc项目源码、整合freemarker

    在本项目中,SpringMVC被用来处理HTTP请求并返回响应,与前端模板引擎Freemarker进行了集成,使得开发者能够方便地创建动态网页内容。 **SpringMVC核心组件** 1. **DispatcherServlet**: SpringMVC的前端控制器,...

    springmvc采用freemarker动态生成带图片的word

    在IT行业中,SpringMVC和Freemarker是两个非常重要的技术组件,它们分别用于构建Web应用程序和服务端模板渲染。在本项目中,我们将探讨如何利用SpringMVC与Freemarker来动态生成带有图片的Word文档。 SpringMVC是...

    SpringMVC整合Freemarker例子

    SpringMVC是一个强大的Java web开发框架,用于构建后端服务,而FreeMarker则是一个模板引擎,主要用于处理视图层的渲染。将这两者整合可以实现MVC架构中的Model-View-Controller模式,使得业务逻辑与展示逻辑分离,...

    springMVC + freemarker + apache tiles

    开发者可以在Freemarker模板中使用变量、控制结构(如if/else、for循环)以及宏等元素,将动态数据渲染成静态页面。与JSP相比,Freemarker更专注于模板,使得代码更加清晰,降低了视图与控制器的耦合。 Apache ...

    springmvc+freemarker

    2. **模板语法**:Freemarker使用简单的模板语言,如 `${expression}` 用于输出变量,`&lt;#if...&gt;` 和 `&lt;#foreach...&gt;` 用于条件和循环控制。 3. **模板继承**:通过`&lt;#include&gt;` 和 `&lt;#assign&gt;` 指令,可以实现模板...

    Maven+Spring+SpringMVC+MyBatis+FreeMarker模版下载为Word的Demo

    FreeMarker是一个模板引擎,它与SpringMVC协同工作,用于生成动态HTML或其他格式的输出。开发者可以编写FreeMarker模板文件,其中包含动态内容和静态内容的组合,FreeMarker会根据后台提供的数据填充模板,生成最终...

    springmvc+freemarker带sql的登录事例

    总之,这个"springmvc+freemarker带sql的登录事例"是一个基本的Web应用实践,涵盖了Spring MVC的请求处理、FreeMarker模板的使用以及与数据库的交互。通过这个实例,开发者可以学习到如何将这些组件整合起来,构建一...

    SpringMVC中使用Thymeleaf模板引擎实例代码

    SpringMVC中使用Thymeleaf模板引擎实例代码 Thymeleaf是一款功能强大且灵活的模板引擎,能够与Spring MVC集成,以替代传统的JSP技术。下面将详细介绍如何在Spring MVC中使用Thymeleaf模板引擎,以及相关的配置和...

    SpringMVC模板 

    2. **FreeMarker模板引擎**:FreeMarker是另一个广泛使用的模板引擎,它比Velocity更强大,但语法稍微复杂一些。在SpringMVC中集成FreeMarker,你需要添加FreeMarker的依赖,配置FreeMarkerConfigurer,设置模板路径...

Global site tag (gtag.js) - Google Analytics