更正改动(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的样式还挺赞的吧)

主页面:

加入:

改动:(上面的改动和删除你要点击一下某一行。才干进行操作)

项目文件夹结构:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ2FubGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

部分配置和相关代码:

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. id="Bufoon_WebApp_ID" version="3.1">
  6. <display-name>WebApp</display-name>
  7. <!-- log4j配置。假设不须要以下的配置,能够将log4j文件放到src文件夹下,log4j会默认载入 -->
  8. <context-param>
  9. <param-name>log4jConfigLocation</param-name>
  10. <param-value>classpath:/properties/log4j.properties</param-value>
  11. </context-param>
  12. <context-param>
  13. <param-name>log4jRefreshInterval</param-name>
  14. <param-value>60000</param-value>
  15. </context-param>
  16. <listener>
  17. <listener-class>
  18. org.springframework.web.util.Log4jConfigListener
  19. </listener-class>
  20. </listener>
  21. <!-- 加入对spring的支持 -->
  22. <context-param>
  23. <param-name>contextConfigLocation</param-name>
  24. <param-value>classpath:/xml/applicationContext.xml</param-value>
  25. </context-param>
  26. <listener>
  27. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  28. </listener>
  29. <!-- 加入springMVC前端控制器 -->
  30. <servlet>
  31. <servlet-name>springMVC</servlet-name>
  32. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  33. <load-on-startup>1</load-on-startup>
  34. <!-- 加入配置文件,假设不想要厦门的配置。能够将 [servlet-name]-servlet.xml放到WEB-INF文件夹下,springMVC会默认载入 -->
  35. <init-param>
  36. <param-name>contextConfigLocation</param-name>
  37. <param-value>classpath:/xml/springMVC-servlet.xml</param-value>
  38. </init-param>
  39. </servlet>
  40. <servlet-mapping>
  41. <servlet-name>springMVC</servlet-name>
  42. <url-pattern>/</url-pattern>
  43. </servlet-mapping>
  44. <!-- 加入UTF-8编码支持 -->
  45. <filter>
  46. <filter-name>CharacterEncodingFilter</filter-name>
  47. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  48. <init-param>
  49. <param-name>encoding</param-name>
  50. <param-value>utf-8</param-value>
  51. </init-param>
  52. </filter>
  53. <filter-mapping>
  54. <filter-name>CharacterEncodingFilter</filter-name>
  55. <url-pattern>/*</url-pattern>
  56. </filter-mapping>
  57. <!-- 当hibernate+spring配合使用的时候,假设设置了lazy=true,那么在读取数据的时候,当读取了父数据后, hibernate会自己主动关闭session。这样,当要使用子数据的时候,系统会抛出lazyinit的错误,
  58. 这时就须要使用spring提供的 OpenSessionInViewFilter,OpenSessionInViewFilter主要是保持Session状态
  59. 知道request将所有页面发送到client,这样就能够解决延迟载入带来的问题 -->
  60. <filter>
  61. <filter-name>openSessionInViewFilter</filter-name>
  62. <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
  63. <init-param>
  64. <param-name>singleSession</param-name>
  65. <param-value>true</param-value>
  66. </init-param>
  67. </filter>
  68. <filter-mapping>
  69. <filter-name>openSessionInViewFilter</filter-name>
  70. <url-pattern>*.do,*.action</url-pattern>
  71. </filter-mapping>
  72. <welcome-file-list>
  73. <welcome-file>login.jsp</welcome-file>
  74. </welcome-file-list>
  75. </web-app>

springMVC-servlet.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-3.2.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
  11. <!-- 注解扫描包 -->
  12. <context:component-scan base-package="com.bufoon.controller" />
  13. <!-- 开启注解 -->
  14. <mvc:annotation-driven />
  15. <!-- 静态资源的訪问 -->
  16. <mvc:resources location="/plugins/" mapping="/plugins/**" />
  17. <!-- 返回JSON模版 -->
  18. <bean
  19. class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  20. <property name="messageConverters">
  21. <list>
  22. <bean
  23. class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
  24. </list>
  25. </property>
  26. </bean>
  27. <!-- 注意:FreeMarker与SpringMVC集成时,其配置一定要放在SpringMVC的配置之前 -->
  28. <!-- 否则:在訪问"/getUser"时server就会报告[HTTP Status 404 - /WEB-INF/jsp/myfree.jsp] -->
  29. <bean id="freemarkerConfig"
  30. class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  31. <!-- 指定FreeMarker模板文件文件夹 -->
  32. <property name="templateLoaderPath" value="/WEB-INF/app/ftl/" />
  33. <!-- 编码设置 -->
  34. <property name="freemarkerSettings">
  35. <props>
  36. <prop key="defaultEncoding">UTF-8</prop>
  37. </props>
  38. </property>
  39. </bean>
  40. <bean id="freeMarkerViewResolver"
  41. class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  42. <property name="prefix" value="" />
  43. <property name="suffix" value=".ftl" />
  44. <property name="contentType" value="text/html; charset=UTF-8" />
  45. </bean>
  46. <!-- 定义视图解析器 -->
  47. <bean id="viewResolver"
  48. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  49. <property name="prefix" value="/WEB-INF/app/"></property>
  50. <property name="suffix" value=".jsp"></property>
  51. </bean>
  52. </beans>

UserController.java

  1. package com.bufoon.controller;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import javax.annotation.Resource;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.springframework.beans.BeanUtils;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.ui.ModelMap;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import org.springframework.web.servlet.ModelAndView;
  15. import com.bufoon.entity.User;
  16. import com.bufoon.model.UserModel;
  17. import com.bufoon.service.UserService;
  18. import com.bufoon.util.Constants;
  19. import com.bufoon.util.Util;
  20. import com.bufoon.util.page.PageResultSet;
  21. @Controller
  22. @RequestMapping("/user")
  23. public class UserController {
  24. @Resource
  25. private UserService userService;
  26. @RequestMapping("/userLogin")
  27. public String userLogin(UserModel userModel, Model model){
  28. userModel.setPassword(Util.encryptMD5(userModel.getPassword()));
  29. User user = userService.findUserByByCondition(userModel);
  30. if (user == null) {
  31. model.addAttribute("errorInfo", "you password is error!");
  32. return "login";
  33. }
  34. Constants.LOGIN_USER = user.getUsername();
  35. return "redirect:/user/index";
  36. }
  37. @RequestMapping("/addUser")
  38. public String addUser(UserModel userModel){
  39. Date date = new Date();
  40. User user = new User();
  41. BeanUtils.copyProperties(userModel, user); //实体属性复制,将userModel中的属性值拷贝到User中
  42. user.setPassword(Util.encryptMD5(userModel.getPassword()));
  43. user.setCreateTime(date);
  44. user.setUpdateTime(date);
  45. user.setUpdateUser(Constants.LOGIN_USER);
  46. user.setCreateUser(Constants.LOGIN_USER);
  47. userService.saveUser(user);
  48. return "redirect:/user/index";
  49. }
  50. @RequestMapping("/index")
  51. public ModelAndView index(UserModel userModel, HttpServletRequest request) {
  52. if(Util.isNull(Constants.LOGIN_USER)){
  53. ModelAndView mav = new ModelAndView("login");
  54. mav.addObject("errorInfo", "user is overdue!");
  55. return mav;
  56. }
  57. return new ModelAndView("userList");
  58. }
  59. @RequestMapping("/getUser")
  60. public void getUser(HttpServletRequest request, HttpServletResponse response, Model model) {
  61. int id = Integer.parseInt(request.getParameter("userId"));
  62. User user = userService.getUserById(id);
  63. Map<String, Object> map = new HashMap<String, Object>();
  64. map.put("user", user);
  65. model.addAttribute("user", user);
  66. }
  67. @RequestMapping("/updateUser")
  68. public String updateUser(UserModel userModel){
  69. Date date = new Date();
  70. User user = userService.getUserById(userModel.getId());
  71. if (Util.isNull(userModel.getPassword())) {
  72. userModel.setPassword(user.getPassword());
  73. }else {
  74. userModel.setPassword(Util.encryptMD5(userModel.getPassword()));
  75. }
  76. userModel.setCreateTime(user.getCreateTime());
  77. userModel.setUpdateTime(date);
  78. userModel.setCreateUser(Constants.LOGIN_USER);
  79. userModel.setUpdateUser(Constants.LOGIN_USER);
  80. BeanUtils.copyProperties(userModel, user);
  81. userService.updateUser(user);
  82. return "redirect:/user/index";
  83. }
  84. @RequestMapping("/deleteUser")
  85. public String deleteUser(HttpServletRequest request){
  86. int id = Integer.parseInt(request.getParameter("userId"));
  87. User user = userService.getUserById(id);
  88. userService.deleteUser(user);
  89. return "redirect:/user/index";
  90. }
  91. @RequestMapping("/exit")
  92. public String exit(){
  93. Constants.LOGIN_USER = null;
  94. return "redirect:/";
  95. }
  96. //返回json
  97. @RequestMapping("/getJsonUserList")
  98. @ResponseBody
  99. public ModelMap getJsonUserList(UserModel userModel, HttpServletRequest request, HttpServletResponse response) {
  100. ModelMap modelMap = new ModelMap();
  101. response.setHeader("Access-Control-Allow-Origin", "*");
  102. String sPage = request.getParameter("page");
  103. int page = 1;
  104. if (!Util.isNull(sPage)) {
  105. page = Integer.parseInt(sPage);
  106. }
  107. PageResultSet<User> userPageResult = userService.findPageUserList(userModel, page, Constants.PAGE_SIZE);
  108. modelMap.addAttribute("event",userPageResult.getList());
  109. modelMap.addAttribute("pageBean", userPageResult.getPage());
  110. modelMap.addAttribute("pageCount",userPageResult.getPage().getTotalPage());
  111. return modelMap;
  112. }
  113. }

代码还是挺多的,不贴了

DEMO源代码到这里下载吧:http://download.csdn.net/detail/soanl/7391345

说明:在项目的doc下有数据库文件。

新建数据库名为 db_shf,编码设为utf-8。然后导入即可

执行 http://你的ip:端口port/WebApp  username:admin,密码:admin

下周開始把mina学习下。由于公司项目之间的通信都是用socket通信的,在这个管理平台也要用到socket同主server通信

http://blog.csdn.net/songanling/article/details/26732977 by 布丰(Bufoon)

Spring4 SpringMVC Hibernate4 Freemaker 整合样例的更多相关文章

  1. Spring4 SpringMVC Hibernate4 Freemaker 集成示例

    变更更正(2014-05-30 13:47:22):一些IDE在web.xml我们会报告这个错误: cvc-complex-type.2.4.a: Invalid content was found ...

  2. spring4+springmvc+hibernate4 demo

    来自 CSDN . 其实下面的更好:加入了maven集成.Spring4 MVC Hibernate4集成 下面也是一篇讲的很详细的文章: hibernate4无法保存数据 而自己遇到的hiberna ...

  3. Spring4+SpringMVC+Hibernate4整合入门与实例

    配置web.xml <? xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...

  4. springMVC+Hibernate4+Spring整合一(配置文件部分)

    本实例采用springMvc hibernate 与 spring 进行整合, 用springmvc 取代了原先ssh(struts,spring,hibernate)中的struts来扮演view层 ...

  5. SSH(Spring4+Struts2+Hibernate4)框架整合

    1.加入Spring4 ①. 加入 jar 包

  6. mysql+ssh整合样例,附源代码下载

    项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源代码下载地址:http://download.csdn.net/detail/ ...

  7. springMVC+Hibernate4+spring整合实例二(实例代码部分)

    UserController.java 代码: package com.edw.controller; import java.io.IOException; import java.io.Print ...

  8. Struts2+Spring4.2+Hibernate4.3整合

    一.导包 antlr-2.7.7.jarasm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcom.springsource.com.mchange.v2.c3 ...

  9. spring4.x hibernate4.x 整合 ehcache 注解 annotate

    [From] http://my.oschina.net/alexgaoyh/blog/348188

随机推荐

  1. 封装简单的API——微信小程序

    前几天自己琢磨微信小程序的基本开发,里边用到的技术包括WebAPI,也就是方法的封装. 当然也可以用ASP.NET MVC WCF来写接口.更简单应该就是 WinForm 简单易部署. 这里用的是 2 ...

  2. n后问题

    Description 在n×n格的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇 ...

  3. IDEA 如何加上 tomcat

    前言: idea 上已经有一个 tomcat 了,因为这个 tomcat 为 32 的,需要加一个 64 为的 tomcat . 第一步: 第二步: 第三步: 点击 OK 就好. 结果:

  4. WinFrom折线图

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. UOJ42. 【清华集训2014】Sum

    传送门 Sol \((-1)^a=1-2(a~mod~2)=1-2a+4\lfloor\frac{a}{2}\rfloor\) 那么原式变成 \(n-2\sum_{i=1}^{n}\lfloor d\ ...

  6. BZOJ4589: Hard Nim(FWT 快速幂)

    题意 题目链接 Sol 神仙题Orzzzz 题目可以转化为从\(\leqslant M\)的质数中选出\(N\)个\(xor\)和为\(0\)的方案数 这样就好做多了 设\(f(x) = [x \te ...

  7. 【数据库】10.0 MySQL常用语句(一)

    显示数据库语句: SHOW DATABASES    只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...

  8. Shellinabox安装及使用教程

    本文转载自: shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 一.shellinabox简介 通常情况下,我们在访问任何远程服务器时,会使用常见的通信工具如OpenSSH和P ...

  9. Git 拉取Gitee仓库报错:“fatal: unable to access ''": Failed to connect to 127.0.0.1 port 1080: Connection refused”

    1.报错信息: 2.本地查看是否Git使用了代理 git config --global http.proxy 3.取消代理 git config --global --unset http.prox ...

  10. Install Python on Mac

    1. 从官网下载最新版Python 3.X 后安装:由于Mac OS X EI Capitan中默认已经集成了 Python 2.7,因此需要在Terminal中输入 Python3 来检测是否安装成 ...