阅读更多

6顶
1踩

企业架构
JeeTemp 1.1版本发布了,该版本修复了1.0版本中存在的一些问题。

JeeTemp 是一套基于 springmvc+mybatis+easyui+velocity 技术实现的模板后台,把一些通用的功能模板化,可以在线打包生成整站源码包括 jsp页面,为开发人员节省时间,生成的功能有增删改查,查询包括按列查询,高级查询可以自己选择条件。

JeeTemp 的功能包括:

  • 菜单管理
  • 角色管理
  • 用户管理
  • 源码编辑
  • 采集管理
  • 数据管理
详细介绍:http://www.iteye.com/news/27813
项目地址:http://demo.cms606.com/index.html
演示地址:http://demo.cms606.com/admin/login.html
6
1
评论 共 11 条 请登录后发表评论
11 楼 diggywang 2013-08-07 10:31
图标插件Highcharts.js是收费库,楼主这个东西不能随便用的。
10 楼 362217990 2013-08-06 17:47
很好 很不错
9 楼 xiaosasha520 2013-08-06 16:59
我提供一个主页的模板给大家看吧。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<script type="text/javascript">
#set($grid='datagrid')
#if(${table.tbtype}=='tree')
#set($grid='treegrid')
#end
#foreach($column in ${table.columns})
#set($columnsCount=$velocityCount)
#end
//Add and Edit
function ${tableName}GridAddAndEdit(title, url, type) {
if (type == 1) { //edit
var rows = $('#${tableName}Grid').${grid}('getSelections');
if (rows.length != 1) {
$.messager.alert('消息', '请钩择一行数据!', 'info');
return;
}
}
$('<div/>').dialog({
href : '${demoPath}${adminRootMapper}/${TableName}/baseDlg${suffix}',
modal : true,
title : title,
top : '15%',
left : '30%',
width : 600,
resizable:true,
buttons : [ {
text : '确定',
iconCls : 'icon-ok',
handler : function() {
${tableName}GridSubmit(url);
$(this).closest('.window-body').dialog('destroy');
}
}, {
text : '取消',
iconCls : 'icon-cancel',
handler : function() {
$(this).closest('.window-body').dialog('destroy');
}
} ],
onClose : function() {
$(this).dialog('destroy');
},
onLoad : function() {
#if(${tableName}=='tbsMenu')
$('#tbsMenuComboxTree').combotree({multiple:false,url:'${demoPath}admin/TbsMenu/comboxTree${suffix}?t='+ Math.random()});
#end
if (type == 0) {
$('#${tableName}Fm').form('clear');
#if(${tableName}=='tbsUser')
$('#tbsUserJoinTbsRole').combogrid({
url : '${demoPath}admin/TbsRole/data${suffix}?t='+ Math.random(),
panelWidth : 460,
textField : 'name',
frozenColumns : [ [ {field : 'ck',checkbox : true}] ],
columns:[ [ 
                {field:'id',title:'主键',width:100},
                {field:'name',title:'角色',width:100},
                {field:'text',title:'权限名称',width:100},
                {field:'createTime',title:'创建时间',width:130}
        ] ]
});
#end
#if(${tableName}=='tbsRole')
$('#roleAuthTree').combotree({url:'${demoPath}admin/TbsMenu/comboxTree${suffix}?t='+ Math.random()});
#end
} else {
var rows = $('#${tableName}Grid').${grid}('getSelections');
if (rows.length == 1) {
#if(${tableName}!='tbsUser')
$('#${tableName}Fm').form('load', rows[0]);
#end
#if(${tableName}=='tbsUser')
$.getJSON('${demoPath}admin/TbsUser/password${suffix}?type=1&password='+rows[0].password,function(data){
$('#tbsUserFm').form('load', rows[0]);
$('#tbsUserFm').form('load',{password:data.msg});
});
$('#tbsUserJoinTbsRole').combogrid({
url : '${demoPath}admin/TbsRole/data${suffix}?userId='+rows[0].id,
panelWidth : 460,
textField : 'name',
frozenColumns : [ [ {field : 'ck',checkbox : true}] ],
columns:[ [ 
            {field:'id',title:'主键',width:100},
            {field:'name',title:'角色',width:100},
            {field:'text',title:'权限名称',width:100},
            {field:'createTime',title:'创建时间',width:130}
    ] ],
    onLoadSuccess:function(data){
    $.getJSON('${demoPath}admin/TbsRoleUser/data${suffix}?userId='+rows[0].id,function(data){
    var roleUserRows=data.rows;
    var g = $('#tbsUserJoinTbsRole').combogrid('grid'); // get ${grid} object
var roleRows= g.${grid}('getRows');
    if(roleRows.length>0 && roleUserRows.length>0){
    for(var i=0;i<roleRows.length;i++){
    for(var r=0;r<roleUserRows.length;r++){
    if(roleRows[i].id==roleUserRows[r].roleId){
    g.${grid}('checkRow',i);
    }
    }
    }
    }
    });
    }
});

#end
#if(${tableName}=='tbsRole')
$('#roleAuthTree').combotree({ url:'${demoPath}admin/TbsMenu/comboxTree${suffix}?type=1&roleId='+rows[0].id });
//var t = $('#roleAuthTree').combotree('tree');
//var node=t.tree('getChecked');//多选框
//t.tree('expandAll');
#end
} else {
$.messager.alert('消息', '请钩择一行数据!', 'info');
}
}
}
});
}

//Del
function ${tableName}GridDel() {
var rows = $('#${tableName}Grid').${grid}('getSelections');
if (rows.length > 0) {
    var ids = '';
for ( var i = 0; i < rows.length; i++) {
ids += 'ids=' + rows[i].id + '&';
}
ids = ids.substring(0, ids.length - 1);
var url = '${demoPath}${adminRootMapper}/${TableName}/del${suffix}?' + ids;
$.messager.confirm('Confirm','确定要删除选择的数据吗?', function(r) {
if (r) {
    $.get(url, function(result){
if (result.success){
#if(${tableName}=='tbsMenu')
$('#${tableName}Grid').treegrid('reload');
#else
$('#${tableName}Grid').${grid}('reload');
#end
$('#${tableName}Grid').${grid}('clearSelections');
} else { 
    $.messager.show({ title: 'Error', msg : result.msg });
}
    }, 'json');
}
});
} else {
$.messager.alert('消息', '请选择要删除的数据!','info');
}
}

//Reload
function ${tableName}GridReload() {
$('#${tableName}Grid').${grid}('options').pageNumber=1;
#if(${table.tbtype}=='tree')
var url='${demoPath}${adminRootMapper}/${TableName}/data${suffix}?gridName=treegrid';
$('#${tableName}Grid').${grid}('options').url=url;
$('#${tableName}Grid').${grid}('reload');
#else
$('#${tableName}Grid').${grid}('reload',{});
#end
}

//${tableName}GridSubmit  submit
function ${tableName}GridSubmit(url) {
    $('#${tableName}Fm').form('submit',{ 
        url: url, 
        onSubmit: function(){ 
            return $(this).form('validate'); 
        }, 
        success: function(result){ 
            var result = eval('('+result+')'); 
            if (result.success){ 
                $('#${tableName}Dlg').dialog('close');      // close the dialog
#if(${table.tbtype}=='tree')
            $('#${tableName}Grid').${grid}('reload');
#else
$('#${tableName}Grid').${grid}('reload');    // reload the user data
#end
            } else { 
            $.messager.show({ title: 'Error',msg: result.msg });
            } 
        } 
    });
}

//高级搜索 del row
function ${tableName}SearchRemove(curr) {
if ($(curr).closest('table').find('tr').size() > 2) {
$(curr).closest('tr').remove();
} else {
alert('该行不允许删除');
}
}

//高级查询
function ${tableName}Search() {
$('<div/>').dialog({
href : '${demoPath}${adminRootMapper}/${TableName}/searchDlg${suffix}',
modal : true,
title : '高级查询',
top : 120,
width : 480,
buttons : [ {
text : '增加一行',
iconCls : 'icon-add',
handler : function() {
var currObj = $(this).closest('.panel').find('table');
currObj.find('tr:last').clone().appendTo(currObj);
//currObj.find('tr:last td *[disabled]').removeAttr("disabled");
}
}, {
text : '确定',
iconCls : 'icon-ok',
handler : function() {
$('#${tableName}Grid').${grid}('options').pageNumber=1;
#if(${tableName}=='tbsMenu')
var args=serializeObjectEx($('#tbsMenuSearchFm'));
args['searchType']=2; //添加JSON属性
$('#${tableName}Grid').${grid}({queryParams: args});
#else
$('#${tableName}Grid').${grid}('reload',serializeObjectEx($('#${tableName}SearchFm')));
#end
}
}, {
text : '取消',
iconCls : 'icon-cancel',
handler : function() {
$(this).closest('.window-body').dialog('destroy');
}
} ],
onClose : function() {
$(this).dialog('destroy');
}
});
}

//导出
function ${tableName}GridExport(){
window.location="${demoPath}admin/${TableName}/export${suffix}";
//var panel=$('#tbcTempGrid').${grid}('getPanel');
//var options=panel.panel('options');
//alert(options.method);
//console.dir(options);
}

//导入
function ${tableName}GridImport(){
$('<div/>').dialog({
href : '${demoPath}admin/${TableName}/importDlg${suffix}',
modal : true,
title : '导入',
top : '15%',
left : '30%',
width : 600,
height: 300,
resizable:true,
buttons : [ {
text : '确定',
iconCls : 'icon-ok',
handler : function() {
//$(this).closest('.window-body').dialog('destroy');
}
}, {
text : '取消',
iconCls : 'icon-cancel',
handler : function() {
$(this).closest('.window-body').dialog('destroy');
}
} ],
onClose : function() {
$(this).dialog('destroy');
},
onLoad : function() {

}
});
}

#if(${tableName}=='tbsHttpRequest')
//设置
function tbsHttpRequestSet(row){
      $("<div/>").dialog({
            height : $(window).height()-150,
            width : $(window).width()-450,
            href : "${demoPath}admin/TbsHttpRequest/httpIndex${suffix}?t="+Math.random(),
cache: false,
resizable:true,
modal : true,
title : '采集设置',
onClose : function() {
$(this).dialog('destroy');
},
onLoad : function(){
     var obj = $('#tbTbsHttpRequest').${grid}('getRows')[row];
     $('#httpClientForm').form('load',obj);
     $('#httpClientForm1').form('load',obj);
     $('#httpClientForm2').form('load',obj);
}
});
}
#end
</script>
   

<!-- 中  ${grid}-->
    <div data-options="region:'center',border : false">
<!-- ${grid} toolbar -->
<table id="${tableName}Grid"  class="easyui-${grid}"  data-options="
#if(${table.tbtype}=='tree')
url:'${demoPath}${adminRootMapper}/${TableName}/data${suffix}?gridName=treegrid',
/*onLoadSuccess : function(row,data){
     $(this).treegrid('collapseAll');
},*/
#else
url:'${demoPath}${adminRootMapper}/${TableName}/data${suffix}',
frozenColumns : [ [ {field : 'ck',checkbox : true}] ],
#end
columns:[ [ 
#foreach($column in ${table.columns})
#if($velocityCount ==1 && ${tableName}=='tbsHttpRequest')
{field:'Action',title:'操作',formatter: function(value,row,index){
var html='<a href=\'javascript:void(0)\' onClick=\'tbsHttpRequestSet('+index+')\'>规则</a>';
return html;
}},
#end

{field:'${column.name}',title:'${column.comment}',hidden:${column.hidden},width:'${column.width}',halign:'${column.halign}',align:'${column.align}',sortable:'${column.sortable}', formatter: function(value,row,index){
#foreach($select in ${column.fmSelect})
if(value${select.condition}'${select.value}'){
    value='${select.comment}';
    }
#end   
    return value;
}}#if($columnsCount!=$velocityCount),#end

#end
] ],
toolbar:'#${tableName}GridToolbar'
"/>

<!-- ${grid} toolbar -->
<div id="${tableName}GridToolbar">
<div style="margin-bottom:5px">
<c:forEach items="${buttons}" var="button">
         ${button}
    </c:forEach>
<%--
<a href="javascript:void(0)" onclick="javascript:${tableName}GridAddAndEdit('添加  ${tableName}','${demoPath}${adminRootMapper}/${TableName}/add${suffix}',0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-add'">添加</a>
<a href="javascript:void(0)" onclick="javascript:${tableName}GridAddAndEdit('修改  ${tableName}','${demoPath}${adminRootMapper}/${TableName}/save${suffix}',1)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-edit'">编辑 </a> 
<a href="javascript:void(0)" onclick="javascript:${tableName}GridDel()" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-remove'">删除</a>
<a href="javascript:void(0)" onclick="javascript:${tableName}GridReload()" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-reload'">刷新</a>
<a href="javascript:void(0)" onclick="javascript:${tableName}GridExport()" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-reload'">导出</a>
<a href="javascript:void(0)" onclick="javascript:${tableName}GridImport()" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-reload'">导入</a>

<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-undo'">后退</a>
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-redo'">前进</a>
--%>
<!-- ${tableName}GridToolbarSearch -->
<input class="easyui-searchbox" data-options="
menu :'#${tableName}GridToolbarSearch',
prompt :'模糊查询',
searcher : function(value,name){
var str='{searchType:1,'+name+':\''+value+'\'}';
        var obj = eval('('+str+')');
        $('#${tableName}Grid').${grid}('options').pageNumber=1;
#if(${table.tbtype}=='tree')
        $('#${tableName}Grid').${grid}({queryParams: obj});
#else
$('#${tableName}Grid').${grid}('reload',obj);
#end
}
"/>
<div id="${tableName}GridToolbarSearch">
#foreach($column in ${table.columns})
<div name="${column.name}">${column.comment}</div>
#end
</div>
<a href="javascript:void(0)" onclick="javascript:${tableName}Search()" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-search'">高级查询</a>
</div>
</div>
</div>
<!--  <div>-->
8 楼 xiaosasha520 2013-08-06 16:43
模版并不开源的,但可以在线源码生成打包下载,页面的代码看上去乱,但都是一个模板生成出来的,其实href加载方式是很严格的。登录后的第一个页面要加载js可能会慢一点,但只加载一次。
 
7 楼 xinggg22 2013-08-06 13:50
代码比较乱!
6 楼 lingduxyz 2013-08-06 13:24
skmbw 写道
代码生成器的代码怎么去掉了?

问得好。
5 楼 skmbw 2013-08-06 12:40
代码生成器的代码怎么去掉了?
4 楼 laibin1320 2013-08-06 11:24
还行,登录后的第一个页面有点慢,其它的很快!
3 楼 kyo19 2013-08-06 11:00
还是卡比较卡
2 楼 osacar 2013-08-06 08:15
1楼,不卡啊。
我打开很流畅啊。
1 楼 黑土豆Dean 2013-08-05 19:48
奇卡无比,应该不是本机问题

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 手工制作超漂亮易语言皮肤库(几十种皮肤模块一键调用)

    超漂亮易语言皮肤库(几十种模块皮肤一键调用)! 绝对让你想不到的皮肤!

  • CSDN更换背景 调整博客风格与代码块样式方法

    然后 进入界面后 在左侧导航栏中 找到 内容管理 并点击进入。进入界面后 我们可以改变博客皮肤 选择自己喜欢的风格。首先 我们进入CSDN 然后鼠标轻点击自己的头像。进入界面后 在左侧导航栏中 找到博客设置。今天一位朋友问我怎么设置CSDN背景。还可以调整 自己代码块的样式。今天在此统一讲解一下。

  • 2018最新csdn修改博客皮肤模板教程

    博客设置 元素选择器选择皮肤 找到下面的代码可以看到每一个皮肤为一个div元素,他们的 class属性名都为opt-skin-box  如下图 找到你喜欢模板的div元素下面的 input元素  value属性的值 然后对默认模板的input值进行替换  替换后的效果如下图,替换后点击保存大功告成,再刷新之后博客就变成你替换的皮肤了...

  • 2018年 CSDN博客背景皮肤设置

    登录CSDN后,点击“我的博客”,如右图所示,

  • 玩转CSDN之自定义博客栏目

    玩转CSDN之自定义博客栏目 不得不说,CSDN在IT界还是非常不错的, 不管是文章数量还是质量,都非常不错,很多程序猿也在CSDN建了窝,那么如何把CSDN的主页设置的更加符合自己的口味,就是我们今天要做的事。 CSDN博客的栏目指的是这块内容: 这里面,有的是CSDN博客自带的内容,比如个人资料、博客专栏等,还有...

  • csdn修改博客皮肤

    哇,之前大白挺好看的,现在被改得丑死了! 想换个皮肤来着,没想到啊,不让换!还好在网上找到了教程,尤其感谢博友 前行中632 按F12进行调试,找到博客皮肤对应的div标签 修改checked属性位置,选择皮肤 这里选择想使用的博客皮肤对应的div块标签,在input标签中增加checked属性,当然原先的那个checked要删掉。 保存 也可以直接在当前博客皮肤的代码上进行修改,改成你...

  • 自定义博客园个人皮肤

      博客园相较于其他的IT交流平台来讲,有一个特殊的地方,就是博客园的个人主页是可以修改的。   算起来,从在博客园发第一篇博客到现在,已经快两年了,竟然一直不知道这个亮点。也是今天一次偶然,在后台做一些设置时才发现这个功能,在这里记录一下大致的设置流程。   随便拿个人页面里的一部分当做示例:      这是我的博客选用的系统皮肤,针对顶部导航栏做出修改:         点击管理...

  • CSDN 博客更换皮肤

    创建 CSDN 博客之后,对自带的 &amp;amp;quot;博客皮肤&amp;amp;quot; 不太满意,于是在博客上面学习了一番,特地 记录下来,以备以后 翻阅回忆... (由于我设置的时候忘记了截图,所以部分截图是在 大神博客 找到的截图…) [已放 大神博客 链接] 一. 打开 账号设置–&amp;amp;amp;gt;我的博客–&amp;amp;amp;gt;博客设置 博客设置 f12 打开调试器,用元素选择器选择皮肤,找到下面的代码 (这是自带的皮肤) ...

  • 制作自定义CSDN博客皮肤

    如果你已经有了一个比较个性化的计数器的话,下面我教你如何为CSDNBLOG制作自定义皮肤的功能,如果你没有并且需要为你的CSDNBLOG添加一个个性化计数器的话,可以参阅我写的另一篇文章。关于给CSDNBLOG添加计数器 http://blog.csdn.net/hbzxf/archive/2004/06/26/27040.aspx1、使用系统定义皮肤系统为我们已经提供了几个定义好的皮肤界

  • 【CSDN】CSDN博客美化教程

    几个简单的技巧,让你的博客更漂亮,可读性更强。

  • 2018最新CSDN修改博客皮肤模板教程

    新版博客不能设置皮肤(点击查看旧版皮肤下线公告),默认皮肤实在不习惯,自己研究了下,发现修改前端代码可以替换,现在分享给大家博客设置 f12打开调试器,用元素选择器选择皮肤,找到下面的代码我们发现我们选中的皮肤&quot;input&quot;后以&quot;readonly&quot;结尾,所以我们只需要把我们要修改的皮肤“input”以“readonly”结尾,把原来皮肤的“input”后面的“readonly”去除。然后点击保存。...

  • CSDN博客自定义模块:VIP、博客专家和企业博客用户的个性化选择

    本文将介绍如何更改CSDN博客的自定义模块,并指出这项功能仅限于VIP、博客专家和企业博客用户。通过了解这些信息,博客用户可以更好地利用CSDN博客的个性化功能。自定义模块是指用户可以在博客页面上添加和编辑的模块,包括头部、侧边栏、底部等区域。这些模块可以包含各种内容,如文字、图片、视频等。自定义模块使博客页面更具个性化和专业性。要更改CSDN博客的自定义模块,用户需要满足以下条件:用户必须是CSDN的VIP、博客专家或企业博客用户。用户需要登录CSDN博客后台。点击“内容管理”选项。

  • 更改CSDN皮肤的方法

    CSDN默认的皮肤为大白,可能有的人不太喜欢,但是CSDN内又没有提供直接修改的方法,在【管理博客】-&gt;【博客设置】界面不能直接点选,不过我们可以通过修改网页源代码的方式来更换自己喜欢的皮肤。 1.首先在【博客设置】界面按F12打开开发者工具,进入如下界面。 原本的【我的博客】界面。 2.找到你喜欢的皮肤,比如这里选择水墨书香。 3.找到自己喜欢的皮肤的value值,并复制。 4.找...

  • 设置csdn皮肤方法,更改自己喜欢的老版皮肤

    csdn现在禁止修改皮肤设置,让很多同学不习惯新的皮肤,尤其是博文的排版,看着不太习惯。自己也是一样,看了一些皮肤修改的办法,感觉还是有点繁琐,还是自己的办法比较简单。 下面是自己修改好了的皮肤主题,如图。 具体的操作步骤如下:选择博文首页右上角“博客管理” - “博客设置”,按F12快捷键,审查元素。ctrl+f 搜索关键词“皮肤”,可以看到八款皮肤的信息如图: 喜欢那一款皮肤,按...

  • 博客园的自定义皮肤

    博客园的自定义皮肤 在折腾的好一阵之后,慢慢的对于园子的样式定制有了一些心得。最终借助李宝亨大大的牛气自定义皮肤终于翻身做主人了。感觉好帅的说,下面简单写一下,具体定义皮肤的方式吧。 一、选择博客园模板 要选择一个在默认的模板中,对于样式定义较少的模板,这样才对于我们自定义的样式冲击比较小。毕竟园子现在还没有完全开放样式,模板的定义。除非大牛,将设计的模板上传。 目前被用于自定义样式使用最多...

  • 制作自定义CSDNBLOG皮肤

    如果你已经有了一个比较个性化的计数器的话,下面我教你如何为CSDNBLOG制作自定义皮肤的功能,如果你没有并且需要为你的CSDNBLOG添加一个个性化计数器的话,可以参阅我写的另一篇文章。关于给CSDNBLOG添加计数器 http://blog.csdn.net/hbzxf/archive/2004/06/26/27040.aspx1、使用系统定义皮肤系统为我们已经提供了几个定义好的皮肤界

  • Hexo搭建个人博客(三)主题美化篇

    从此,在个性化的路上一去不回头……

  • DEV皮肤(系统默认和自定义皮肤调用)

    基于DEV版本9.3.4.0,查看DEV控件的皮肤。DEV控件提供了多种多样的皮肤样式,用户可以直接引用这些皮肤样式。也可以通过DEV提供的工具来制作自己喜欢的皮肤样式。下面的实例程序比官方DEMO的实例程序缺少5中默认的皮肤样式,我自己没有找到,如果有人知道希望可以告诉我,谢谢!其实程序也用不到官方提供的那么多皮肤样式(因为里面有很多相似的或者挺难看的)我们只要根据自己需要添加几种即可,这里是实例程序,因此列出了大部分皮肤样式。下面介绍一下自己编写的实例程序:首先,搭建实例环境,如下图所示(本人使用VS2

Global site tag (gtag.js) - Google Analytics