Spring4 SpringMVC Hibernate4 Freemaker 整合例子_布丰的博客-CSDN博客_spring4.39 对应的free


本站和网页 https://blog.csdn.net/songanling/article/details/26732977 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Spring4 SpringMVC Hibernate4 Freemaker 整合例子_布丰的博客-CSDN博客_spring4.39 对应的free
Spring4 SpringMVC Hibernate4 Freemaker 整合例子
布丰
于 2014-05-23 18:40:23 发布
4904
收藏
分类专栏:
SSH
文章标签:
SpringMvc
freemaker
Bootstrap
整合
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/songanling/article/details/26732977
版权
SSH
专栏收录该内容
3 篇文章
0 订阅
订阅专栏
更正修改(2014-05-30 13:47:22):有的IDE中web.xml会报这个错:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'. One of '{"http://  xmlns.jcp.org/xml/ns/javaee":enabled, "http://xmlns.jcp.org/xml/ns/javaee":async-supported, "http://  xmlns.jcp.org/xml/ns/javaee":run-as, "http://xmlns.jcp.org/xml/ns/javaee":security-role-ref, "http://  xmlns.jcp.org/xml/ns/javaee":multipart-config}' is expected.
你可以无视它,但是如果觉得不舒服的话,可以将<load-on-startup>1</load-on-startup>放到<init-param>这个节点的后面
前话:
           写了半年的Flex,也就是一个做一个WEB的视频监控浏览端,已经初步成型,现在是要做一个管理平台,于是终于又要用回JAVA了,但是一切都变的陌生了,
比如写个方法或者定义一个变量,总是会用Flex的语法去写,以前都是用Struts2 Hibernate Spring框架的,现在据说springMVC更流行了,于是花了这一周时间入了下门,感觉
确实不错,我是看的这个系列教程,跟开涛学SpringMvc http://jinnianshilongnian.iteye.com/category/231099,写的很赞,通俗易懂,非常感谢!
后来顺便也看了下这个前端开发框架Bootstrap也很不错,简直是后端开发人员的福音啊,并且我发现改版后的CSDN登录界面也用到了这个框架,所以学习了下,也是在
一个系列博客中看的,http://www.cnblogs.com/aehyok/p/3404867.html#title02 其实是跟Bootstrap中文网的教程差不多,但是在博客中看比较集中,并且目录清晰,当时在中文网看的12栅格布局是真心没看懂,后来在这位仁兄的博
客中看懂了,在这里非常感谢!
今天周五,所以简单的整合了一下来熟悉这周看的东西
老规矩(有图有真相),先看下相关效果图吧:
登录界面:(Bootstrap的样式还挺赞的吧)
主页面:
添加:
修改:(上面的修改和删除你要点击一下某一行,才能进行操作)
项目目录结构:
部分配置和相关代码:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="Bufoon_WebApp_ID" version="3.1">
<display-name>WebApp</display-name>
<!-- log4j配置。如果不需要下面的配置,可以将log4j文件放到src目录下,log4j会默认加载 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/properties/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!-- 添加对spring的支持 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/xml/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 添加springMVC前端控制器 -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<!-- 添加配置文件,如果不想要厦门的配置,可以将 [servlet-name]-servlet.xml放到WEB-INF目录下,springMVC会默认加载 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/xml/springMVC-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 添加UTF-8编码支持 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 当hibernate+spring配合使用的时候,如果设置了lazy=true,那么在读取数据的时候,当读取了父数据后, hibernate会自动关闭session,这样,当要使用子数据的时候,系统会抛出lazyinit的错误,
这时就需要使用spring提供的 OpenSessionInViewFilter,OpenSessionInViewFilter主要是保持Session状态
知道request将全部页面发送到客户端,这样就可以解决延迟加载带来的问题 -->
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>*.do,*.action</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>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: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-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 注解扫描包 -->
<context:component-scan base-package="com.bufoon.controller" />
<!-- 开启注解 -->
<mvc:annotation-driven />
<!-- 静态资源的访问 -->
<mvc:resources location="/plugins/" mapping="/plugins/**" />
<!-- 返回JSON模版 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<!-- 注意:FreeMarker与SpringMVC集成时,其配置一定要放在SpringMVC的配置之前 -->
<!-- 否则:在访问"/getUser"时服务器就会报告[HTTP Status 404 - /WEB-INF/jsp/myfree.jsp] -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 指定FreeMarker模板文件目录 -->
<property name="templateLoaderPath" value="/WEB-INF/app/ftl/" />
<!-- 编码设置 -->
<property name="freemarkerSettings">
<props>
<prop key="defaultEncoding">UTF-8</prop>
</props>
</property>
</bean>
<bean id="freeMarkerViewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html; charset=UTF-8" />
</bean>
<!-- 定义视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/app/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
UserController.java
package com.bufoon.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.bufoon.entity.User;
import com.bufoon.model.UserModel;
import com.bufoon.service.UserService;
import com.bufoon.util.Constants;
import com.bufoon.util.Util;
import com.bufoon.util.page.PageResultSet;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@RequestMapping("/userLogin")
public String userLogin(UserModel userModel, Model model){
userModel.setPassword(Util.encryptMD5(userModel.getPassword()));
User user = userService.findUserByByCondition(userModel);
if (user == null) {
model.addAttribute("errorInfo", "you password is error!");
return "login";
Constants.LOGIN_USER = user.getUsername();
return "redirect:/user/index";
@RequestMapping("/addUser")
public String addUser(UserModel userModel){
Date date = new Date();
User user = new User();
BeanUtils.copyProperties(userModel, user); //实体属性复制,将userModel中的属性值复制到User中
user.setPassword(Util.encryptMD5(userModel.getPassword()));
user.setCreateTime(date);
user.setUpdateTime(date);
user.setUpdateUser(Constants.LOGIN_USER);
user.setCreateUser(Constants.LOGIN_USER);
userService.saveUser(user);
return "redirect:/user/index";
@RequestMapping("/index")
public ModelAndView index(UserModel userModel, HttpServletRequest request) {
if(Util.isNull(Constants.LOGIN_USER)){
ModelAndView mav = new ModelAndView("login");
mav.addObject("errorInfo", "user is overdue!");
return mav;
return new ModelAndView("userList");
@RequestMapping("/getUser")
public void getUser(HttpServletRequest request, HttpServletResponse response, Model model) {
int id = Integer.parseInt(request.getParameter("userId"));
User user = userService.getUserById(id);
Map<String, Object> map = new HashMap<String, Object>();
map.put("user", user);
model.addAttribute("user", user);
@RequestMapping("/updateUser")
public String updateUser(UserModel userModel){
Date date = new Date();
User user = userService.getUserById(userModel.getId());
if (Util.isNull(userModel.getPassword())) {
userModel.setPassword(user.getPassword());
}else {
userModel.setPassword(Util.encryptMD5(userModel.getPassword()));
userModel.setCreateTime(user.getCreateTime());
userModel.setUpdateTime(date);
userModel.setCreateUser(Constants.LOGIN_USER);
userModel.setUpdateUser(Constants.LOGIN_USER);
BeanUtils.copyProperties(userModel, user);
userService.updateUser(user);
return "redirect:/user/index";
@RequestMapping("/deleteUser")
public String deleteUser(HttpServletRequest request){
int id = Integer.parseInt(request.getParameter("userId"));
User user = userService.getUserById(id);
userService.deleteUser(user);
return "redirect:/user/index";
@RequestMapping("/exit")
public String exit(){
Constants.LOGIN_USER = null;
return "redirect:/";
//返回json
@RequestMapping("/getJsonUserList")
@ResponseBody
public ModelMap getJsonUserList(UserModel userModel, HttpServletRequest request, HttpServletResponse response) {
ModelMap modelMap = new ModelMap();
response.setHeader("Access-Control-Allow-Origin", "*");
String sPage = request.getParameter("page");
int page = 1;
if (!Util.isNull(sPage)) {
page = Integer.parseInt(sPage);
PageResultSet<User> userPageResult = userService.findPageUserList(userModel, page, Constants.PAGE_SIZE);
modelMap.addAttribute("event",userPageResult.getList());
modelMap.addAttribute("pageBean", userPageResult.getPage());
modelMap.addAttribute("pageCount",userPageResult.getPage().getTotalPage());
return modelMap;
代码还是挺多的,不贴了
DEMO源码到这里下载吧:http://download.csdn.net/detail/soanl/7391345
说明:在项目的doc下有数据库文件,
新建数据库名为 db_shf,编码设为utf-8,然后导入就行
运行 http://你的ip:端口port/WebApp  用户名:admin,密码:admin
下周开始把mina学习下,因为公司项目之间的通信都是用socket通信的,在这个管理平台也要用到socket同主服务器通信
http://blog.csdn.net/songanling/article/details/26732977 by 布丰(Bufoon)
布丰
关注
关注
点赞
收藏
打赏
评论
Spring4 SpringMVC Hibernate4 Freemaker 整合例子
前话:写了半年的Flex,也就是一个做一个WEB的视频监控浏览端,已经初步成型,现在是要做一个管理平台,于是终于又要用回JAVA了,但是一切都变的陌生了,比如写个方法或者定义一个变量,总是会用Flex的语法去写,以前都是用Struts2 Hibernate Spring框架的,现在据说springMVC更流行了,于是花了这一周时间入了下门,感觉确实不错,我是看的这个系列教程,跟开涛学S
复制链接
扫一扫
专栏目录
Spring+freemarker+Hibernate搭建
03-25
一个完整的Spring+Hibernate+FreeMarker环境的搭建过程。
包括了国际化配置、缓存配置、事物配置等功能
springmvc4 同时配置thymeleaf和jsp,freemarker三种模板引擎
08-24
325
普通的java ee项目,打包成war包,默认就是支持jsp的。添加thymeleaf模板支持
pom.xml中添加依赖 添加了jsp-jstl的支持,spring4,spingmvc4 和thymeleaf3以及thymeleaf-spring4 ,可以把shiro部分去掉。
&lt...
评论 1
您还未登录,请先
登录
后发表或查看评论
hibernate整合freemarker构建动态SQL
u012735769的博客
01-26
2249
最近参与一个项目,时间紧,任务重,整个系统采用前后分离的方式,因此在后端开发上面需要尽量避免人天的消耗,因此,需要架构一个轻量级,高效率,通用性强的后端程序 。
因此,我选择了全自动的ORM工具,Hibernate。Hibernate 的优势我想就不用我多说了,轻巧好用,代码便于理解维护等等。而且,开发一个通用的DAO层就可以直接使用增删改,查询方面可以利用反射写个通用字段过滤方法。这样,绝大部分
一步一步实现Spring4 + Hibernate4 + Freemarker2 的注解驱动开发(一. 环境搭建)
墨迹点点
03-11
1764
一 环境搭建
1.JDK安装
下载并安装JDK 6以上版本(本事例采用的JDK8,编写文档时,jdk8为测试版)
2.开发工具安装
下载并安装Spring的Eclipse集成开发工具STS最新版本
STS下载地址:http://spring.io/tools/sts/all
也可以直接使用eclipse
3.数据库安装
Spring mvc+hibernate+freemarker(开源项目)
zl19861225的专栏
03-07
151
今天我为大家做了一个 spring3 MVC 的例子,希望能对刚接触spring的朋友有所帮助。该流程属于大型项目的流程,涉及的知识比较希望大家耐心学习。
企业级项目实战(带源码升级版本)地址:http://zz563143188.iteye.com/blog/1845469
比特币,区块链白皮书,python,java,oracle,mysql,Spring,Hibe...
Spring mvc+hibernate+freemarker(实战)
weixin_30701575的博客
01-12
39
Spring mvc+hibernate+freemarker(实战)
博客分类:
Spring
Spring mvchibernatefreemarkerwebjava
今天我为大家做了一个spring3 MVC的例子,希望能对刚接触spring的朋友有所帮助。该流程属于大型项目的流程,涉及的知识比较希望大家耐心学习。
项目开发流程详解:...
Freemarker实现Hibernate动态sql
最新发布
少年时。
10-20
275
主ftl文件:
${***}为全局变量,即在获取free marker时传入的数据
通过import导入其他的ftl文件
<#import "cors-join-table.ftl" as joinSpace>
<#import "cors-where-condition.ftl" as conditionSpace>
<#import "cors-main-where-condition.ftl" as mainConditionSpace>
sele...
Spring4 SpringMVC Hibernate4 Freemaker 集成示例
weixin_33946605的博客
06-30
49
变更更正(2014-05-30 13:47:22):一些IDE在web.xml我们会报告这个错误:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'. One of '{"http://
xmlns.jcp.org/xml/ns/javaee":enabled, "...
springMVC3.2+Hibernate4+freemarker
10-20
springMVC3.2+Hibernate4+freemarker
代码框架采用springMVC3.2.4+hibernate4.2.8+freemarker2.3.16
功能方面只是一个简单的注册登录,前台使用freemarker渲染,使用了freemarker自定义标签。
SpringMVC+Hibernate+Freemarker 干净的框架
01-28
一个基于SpringMVC+Hibernate+Freemarker 的干净的框架
SpringMVC+Freemarker+Hibernate整合范例
10-16
该文档对于SpringMVC与Hibernate和Freemarker整合做了详细的阐述,通过范例使得大家对于三者整合框架的搭建有了更好的了解。
spring+springmvc+hibernate+thymeleaf 练习demo项目源码
11-27
spring+springmvc+hibernate+ thymeleaf 框架组合练习学习做的一个完整的精简的小demo项目源码
spring mvc、hibernate、freemarker开源项目源码下载
07-25
spring mvc、hibernate、freemarker开源项目源码下载
SpringMVC Spring4 Hibernate4 Freemarker项目搭建
01-03
Freemarker SpringMVC Spring4 Hibernate4项目搭建测试
spring4+springmvc+hibernate4整合步骤详细解释
08-06
整合了ssh的基本开发步骤,把所有功能以及怎么实现需要的jai包作用全部包含在里面
配套一个案例包含增删改查
最新ssm:Spring + SpringMVC + Mybatis + FreeMarker 整合示例
10-14
Spring + SpringMVC + Mybatis + FreeMarker 整合示例。所用jar包均是目前位置最新版本:201710最新版: spring mvc4.3.12 , mybatis: 3.4.5 , FreeMarker : 2.3.26。 有mysql数据库脚本。导入即可使用。有个简单的使用文档,希望能助你一臂之力 节省开发时间 提升效率。
java-springmvc4+freemarker-实现layout布局页
草青工作室 的专栏
04-01
6467
java-springmvc4+freemarker-实现layout布局页
使用 jsp 开发业务系统时,一般一个页面的js脚本针对当前页面的逻辑比较复杂无法公用,js 又常常更新。
客户端由于缓存问题,浏览器会缓存js到本地,不去下载最新的 js 文件(除非引用js时加版本号,如:order.js?v=1.0)
为了解决以上开发问题,可以将 js 写到 jsp 页面的下方
spring+springmvc+hibernate+freemark+redis完全注解配置
xl7751125的博客
02-09
1152
0配置的ssh
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
布丰
CSDN认证博客专家
CSDN认证企业博客
码龄12年
暂无认证
74
原创
14万+
周排名
37万+
总排名
27万+
访问
等级
3401
积分
76
粉丝
28
获赞
99
评论
30
收藏
私信
关注
热门文章
Spring Boot集成Swagger2并替换默认的UI
24295
springMVC easyUI filebox 单个文件上传
16591
Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
15615
Mysql GROUP_CONCAT函数多个字段合并的使用
13766
springMvc整合Freemarker引入CSS,JS文件404的问题
8345
分类专栏
JSP
SSH
3篇
数据库
7篇
JAVA
7篇
设计模式
8篇
HTML/CSS
2篇
电脑技术
2篇
兴趣爱好
1篇
偶像明星
工作生活
2篇
WebService
1篇
EXTJS
开发工具
1篇
linux
1篇
Flex/As
23篇
jquery_easyui
4篇
android
算法(Algorithm)
2篇
问题汇总(Questions)
15篇
应用实例(AppDemo)
5篇
门户网开发
搜索引擎(Solr/ElasticSearch)
Spring Boot/Spring Cloud
1篇
最新评论
Flex 远程视频监控观看端新版
烨君:
我也想实现这个功能,您能同意一下申请吗,
springMVC easyUI filebox 单个文件上传
深夜猿:
这一段代码 还不如不发 看的没头没尾
Spring Boot集成Swagger2并替换默认的UI
Kevin's life:
感谢
Flex 视频监控多屏播放
林乾:
遇到了一个BUG想请教一下 方便留个联系方式吗
Spring Boot集成Swagger2并替换默认的UI
诚信开发:
有空可以看看我封装的swagger-layui,即插即用,支持spring mvc、spring boot、单服务、微服务,非常方便,https://www.cnblogs.com/myhappylife/p/9403563.html#autoid-0-0-0
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
【Java设计模式】原型
【Java设计模式】建造者
【Java设计模式】抽象工厂
2018年4篇
2017年4篇
2015年3篇
2014年50篇
2013年24篇
2012年2篇
目录
目录
分类专栏
JSP
SSH
3篇
数据库
7篇
JAVA
7篇
设计模式
8篇
HTML/CSS
2篇
电脑技术
2篇
兴趣爱好
1篇
偶像明星
工作生活
2篇
WebService
1篇
EXTJS
开发工具
1篇
linux
1篇
Flex/As
23篇
jquery_easyui
4篇
android
算法(Algorithm)
2篇
问题汇总(Questions)
15篇
应用实例(AppDemo)
5篇
门户网开发
搜索引擎(Solr/ElasticSearch)
Spring Boot/Spring Cloud
1篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
布丰
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值