我也开源啦!freemarker+struts2+Spring+Hibernate的项目,还用到了extjs,JQuery,Ajax用JSON。大家来围观,源代码在:
https://github.com/gazeldx/javaee-ssh-freemarker
我是在jeecms的架构基础上进行了一系列的封装,使得代码量少了很多。
jquery架构与freemarker整合,所有的验证都不需要特别写js,只要写vld="required:true,dateISO:true。。。。"这样就可以了。
实现一个增删改查全功能,代码如下:
先看view部分代码:
效果图:
列表 list.ftl
<@p.list_top><#include "/c/stock/search_simple.ftl"><#include "searchAdv.ftl"></@p.list_top>
<@p.table operateType=1 cols=[
{"name":"billid","label":"_mar_billid","type":"preview"}
{"name":"billdate","label":"_mar_billdate"}
{"name":"billstate","label":"_billstate"}
{"name":"operator2.name","label":"_operator"}
{"name":"checker2.name","label":"_checker"}
{"name":"memo","label":"_memo"}]
/>
<@p.extSelectGoods/>
<#include "/c/list_bottom.ftl">
列表中包含了高级检索 advSearch.ftl
<@s.set name="_billid" value="%{getText('_mar_billid')}"/>
<#include "/c/global/stock.ftl">
<@p.searchAdvHead/>
<#include "/c/stock/search_head.ftl">
<tr><td>${_goods_shortname}</td><td><@p.text name="queryGoodsName" id='queryGoodsName' value="" size="14" title="${_please_select_goods_to_active}"/><@p.hidden id="queryGdsid" name="queryGdsid"/></td>
<td colspan="2"> </td>
<@p.tr/>
<td colspan="2">${_billid}<@p.text name="queryBillid" value="${queryBillid!}" size="10" title="${_whole_word_match_ignore_others}"/></td>
<td colspan="2">${_memo}<@p.text name="queryMemo" value="${queryMemo!}" size="10"/></td></tr>
<#include "/c/stock/oper_checker.ftl">
<@p.searchAdvFoot/>
新增 add.ftl:
<#global type="add">
<#include "head.ftl">
<@p.form>
<@p.add_ss/>
<@p.text label="_mar_billdate" name="billdate"/>
<@p.textarea label="_memo" name="bean.memo" vld="stringMaxLength:200"/>
<@p.tr/>
<#include "/c/s-end.ftl">
</@p.form>
效果图:
head.ftl
<#global _billid="_mar_billid">
<#global cols=[
{"name":"code","label":"_goods_code"}
{"name":"name","label":"_goods_name"}
{"name":"units","label":"_goods_havecount"}]
>
<#include "/c/s-head.ftl">
新增中有用extjs处理明细物料的 ext.ftl
预览 view.ftl
<@p.viewTop/>
<@p.viewTable>
<@p.view_ss label="_mar_billid"/>
<@p.td label="_mar_billdate" content="bean.billdate"/>
<@p.td label="_memo" content="bean.memo"/>
<@p.tr/>
</@p.viewTable>
<@p.tableExtSimple/>
<@p.extView cols=[
{"name":"code","label":"_goods_code"}
{"name":"name","label":"_goods_name"}
{"name":"units","label":"_goods_havecount"}]
/>
<#include "/c/view_bottom.ftl">
再看Action等类
package com.atech.stock.action;
@SuppressWarnings("serial")
@Scope("prototype")
@Controller("stock.marAct")
public class MarAct extends StockCoreAction {
/**
* 查询列表
*/
public String list() {
initQuery();//..一些业务初始化工作
this.pagination = stockMng.querySimple(queryFdate, queryBillstate, DBConstants.Stock_Siotypeid_Mar, pageParams);
return LIST;
}
/**
* 高级检索
* @return
*/
public String queryAdvance() {
initQuery();
this.pagination = stockMng.queryAdvanceMar(queryFdate, queryBillstate, queryStartDate, queryEndDate, queryMemo, queryBillid, queryGdsid, queryOperatorid, queryCheckerid, pageParams);
return LIST;
}
void initQuery() {
//..一些初始化工作
}
}
你会问:保存、修改、删除的业务逻辑在哪里?答案是:全部封装好到父类了,不用写啦
struts.xml引入的xml代码
<package name="stock.mar" namespace="/admin/stock/mar" extends="core-default">
<action name="Com_*" method="{1}" class="stock.marAct">
<result name="list">/WEB-INF/stock_sys/mar/list.ftl</result>
<result name="add">/WEB-INF/stock_sys/mar/add.ftl</result>
<result name="edit">/WEB-INF/stock_sys/mar/edit.ftl</result>
<result name="view">/WEB-INF/stock_sys/mar/view.ftl</result>
</action>
</package>
剩下的就是hibernate的hbm和实体类代码了,比较简单,故略去。
再不需要其他代码了。
效果图片见附件
- 大小: 397.3 KB
- 大小: 159.6 KB
- 大小: 315.4 KB
分享到:
相关推荐
J2CMS是一款基于JAVAEE平台的开源内容管理系统.采用Spring2.5 + Struts2.1 + JPA1.0(Hibernate3.3)+FreeMarker + MySQL开发。
采用Spring2.5 + Struts2.1 + JPA1.0(Hibernate3.3)+FreeMarker + MySQL开发. J2CMS内容管理系统开发环境: eclipse-jee-juno-SR1-win32-x86_64 JDK 1.6 Apache tomcat 7.0 MySQL 5.5 系统依赖的其它jar包版本可以在...
采用Spring2.5 + Struts2.1 + JPA1.0(Hibernate3.3)+FreeMarker + MySQL开发.J2CMS内容管理系统开发环境导入Eclipse:1.先建一个名为J2CMS-SSH的工程2.将src和WebContent目录内容分别拷到工程中对应的目录3.j2cms-...
JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的...基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点采用hibernate3+struts2+spring2+freemarker主流技术架构
采用hibernate3+struts2+spring2+freemarker主流技术架构 懂html就能建站,提供最便利、合理的使用方式 强大、灵活的标签,用户自定义显示内容和显示方式 在设计上自身预先做了搜索引擎优化,增强JEECMS v2.3.2 正式...
集合了Spring3.1 + Struts2.3 + Hibernate4.1 + JPA2.0 + FreeMarker + MySQL 等技术。 开发环境 : eclipse-jee-Juno-Release-win32 JDK 1.6 Apache tomcat 6.0 MySQL 5.5 系统依赖的其它jar包版本可以在lib目录里...
基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点,采用hibernate3+struts2+spring2+freemarker主流技术架构,懂html就能建站,提供最便利、合理的使用方式 ,强大、灵活的标签,用户自定义...
采用Spring2.5 Struts2.1 JPA1.0(Hibernate3.3) FreeMarker MySQL开发. J2CMS内容管理系统 SSH 20121022 更新 1.当前版本的分支为j2cms-SSH 2.更新了SSH的版本,使用了当前最新的版本 3.其它所有的依赖的jar包基本都...
采用Spring2.5 + Struts2.1 + JPA1.0(Hibernate3.3)+FreeMarker + MySQL开发. J2CMS内容管理系统开发环境: eclipse-jee-juno-SR1-win32-x86_64 JDK 1.6 Apache tomcat 7.0 MySQL 5.5 系统依赖的其它jar包版本可以在...
采用Spring2.5 + Struts2.1 + JPA1.0(Hibernate3.3)+FreeMarker + MySQL开发. J2CMS内容管理系统开发环境: eclipse-jee-juno-SR1-win32-x86_64 JDK 1.6 Apache tomcat 7.0 MySQL 5.5 系统依赖的其它jar包版本可
J2CMS-SSH是J2CMS的开源版本,我们设计了一个基于JavaEE平台的轻量极的敏捷开发架构,实现了一个具有基本功能的内容管理系统,集成使用了Spring+ Struts+ Hibernate + JPA + FreeMarker + MySQL 等技术。 开发...