SpringMVC、Spring和freemarker 开发指导
来源:互联网 发布:局域网扫描软件 编辑:程序博客网 时间:2024/05/29 06:49
展现层
Freemarer介绍
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
后台页面
后台页面需要的文本信息在messages_zh_CN.properties中配置国际化属性
spring中配置好资源文件,使spring mvc在html文件能够读到资源文件信息。
读取控制层的属性非常简单,freemark只需用类似jsp的el表达式输出普通对象。对于控制层传输过来的集合对象可用freemark内置对象list来循环出来
前台模版页面
在default目录相应的文件夹添加html,在html文件中引入freemark机制控制control层传输对象的显示。
控制层
SpringMVC简介
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 FreeMarker、JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
控制层实现
配置SpringMVC支持
Web.xml配置Spring后台核心调度器
<servlet><servlet-name>JeeCmsAdmin</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/jeecms-servlet-admin.xml/WEB-INF/config/plug/**/*-servlet-admin-action.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>Web.xml配置Spring后台核心调度器匹配路径<servlet-mapping><servlet-name>JeeCmsAdmin</servlet-name><url-pattern>/jeeadmin/jeecms/*</url-pattern></servlet-mapping>Web.xml配置Spring前台核心调度器<servlet><servlet-name>JeeCmsFront</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/jeecms-servlet-front.xml/WEB-INF/config/plug/**/*-servlet-front-action.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet>Web.xml配置Spring前台核心调度器匹配路径<servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jhtml</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jspx</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>
Spring Controller
action.admin.main核心管理模块Controller
action.admin.assist辅助管理模块Controller
/**@Controller标志该类是Srping Controller**/@Controllerpublic class WelcomeAct {/**/index.do该地址将由Spring DispatchServlet负责调度给该方法处理*/@RequestMapping("/index.do")public String index() {return "index";}@RequestMapping("/top.do")public String top(HttpServletRequest request, ModelMap model) {// 需要获得站点列表List<CmsSite> siteList = cmsSiteMng.getList();CmsSite site = CmsUtils.getSite(request);CmsUser user = CmsUtils.getUser(request);// 传输对象到view层model.addAttribute("siteList", siteList);model.addAttribute("site", site);model.addAttribute("siteParam", AdminContextInterceptor.SITE_PARAM);model.addAttribute("user", user);return "top";}/***装配service层对象,调用业务逻辑层*/@Autowiredprivate CmsSiteMng cmsSiteMng;}
SpringMVC扩展配置
servlet-admin.xml 后台Spring国际化、拦截器、SpringMVC视图解析器配置
servlet-front.xml前台Spring国际化、拦截器、SpringMVC视图解析器配置
servlet-admin-action.xml 后台action配置文件
servlet-front-action.xml前台action配置文件
配置action bean
<bean id="welcomeAct" class="com.jeecms.cms.action.admin.WelcomeAct"/>
逻辑层
类存放包介绍
com.manager.main.impl核心service层
com.manager.assist.impl 辅助service层
com.service 采集、栏目、内容、流量公用service包
service类代码编写样例
@Service@Transactionalpublic class CmsConfigMngImpl implements CmsConfigMng {@Transactional(readOnly = true)public CmsConfig get() {CmsConfig entity = dao.findById(1);return entity;}public void updateCountCopyTime(Date d) {dao.findById(1).setCountCopyTime(d);}public void updateCountClearTime(Date d) {dao.findById(1).setCountClearTime(d);}public CmsConfig update(CmsConfig bean) {Updater<CmsConfig> updater = new Updater<CmsConfig>(bean);CmsConfig entity = dao.updateByUpdater(updater);entity.blankToNull();return entity;}public MarkConfig updateMarkConfig(MarkConfig mark) {get().setMarkConfig(mark);return mark;}public void updateMemberConfig(MemberConfig memberConfig) {get().getAttr().putAll(memberConfig.getAttr());}private CmsConfigDao dao;//自动装配dao层@Autowiredpublic void setDao(CmsConfigDao dao) {this.dao = dao;}}
需要@Service@Transactional
注解标志该类为业务逻辑层,所有的service层均采用接口开发模式
@Transactional(readOnly = true)只读事务
配置service bean
context.xml中增加service bean的配置
<beanid="cmsConfigMng" class="com.jeecms.cms.manager.main.impl.CmsConfigMngImpl"/>
持久层
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操作数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用
DAO类代码编写样例
持久层采用Hibernate3,缓存采用Ehcache
com.dao.main.impl 核心DAO层
com.dao.assist.impl 辅助DAO层
@Repositorypublic class CmsConfigDaoImpl extends HibernateBaseDao<CmsConfig, Integer>implements CmsConfigDao {public CmsConfig findById(Integer id) {CmsConfig entity = get(id);return entity;}//重写getEntityClass方法@Overrideprotected Class<CmsConfig> getEntityClass() {return CmsConfig.class;}}
@Repository注解标志该类是DAO层组件,可以选择继承HibernateBaseDao基础类,需要实现接口。
配置DAO bean
jeecms-context.xml中增加dao bean的配置
<bean id="cmsConfigDao" class="com.jeecms.cms.dao.main.impl.CmsConfigDaoImpl"/>
- SpringMVC、Spring和freemarker 开发指导
- Spring+SpringMVC+Springdatajpa+Freemarker
- freemarker 和 springmvc 整合
- freemarker 和 springMvc整合
- SpringMVC ,Spring Security,Hibernate4,Freemarker 整合笔记
- SpringMVC+spring-security+sitemesh+hibernate+freemarker整合
- spring+freemarker+springMvc+mybatis+maven整合
- SpringMVC-Spring-MyBatis-Freemarker整合+源码下载
- Mybatis-Spring-SpringMVC-freemarker-PageHelper的整合
- spring-boot集成Freemarker开发
- springmvc + freemarker 开发环境 缓存设置
- springmvc + freemarker 开发环境 缓存设置
- Spring和Freemarker整合配置
- SpringMVC+Freemarker
- springMVC和FreeMarker简单方式导出excel
- Spring + SpringMVC + Mybatis 开发
- 搭建Spring、Spring MVC、Mybatis和Freemarker
- 搭建Spring、Spring MVC、Mybatis和Freemarker
- 在Centos 7上使用Devstack快速安装Openstack
- 用户手势检测-GestureDetector使用详解
- Mac环境下配置adb
- sduacm16级寒假训练 搜索与背包
- 多线程——生命周期
- SpringMVC、Spring和freemarker 开发指导
- 张正友标定法小结
- 阿里云短信发送
- 虚拟机字节码执行引擎(八)
- 关于编码的一些问题
- mysql对指定列进行排名
- spark性能优化一
- 3种插入排序算法(php)
- 搭建iOS自动化打包平台(利用Jenkins持续集成iOS项目)