阅读更多

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值进行替换  替换后的效果如下图,替换后点击保存大功告成,再刷新之后博客就变成你替换的皮肤了...

  • 设置 CSDN 皮肤的方法,修改成自己喜欢的皮肤

    转载自

  • 【CSDN】CSDN博客美化教程

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

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

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

  • 修改CSDN博客皮肤的方法,简易版

    简单修改博客皮肤的方法

  • CSDN背景设置以及其他设置

    1.右上角点击创作 2.左下角设置拉到最下面可以看到博客设置 3.在这里可以设置背景 4.还有其他的设置也可以在这里进行设置

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

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

  • Spring Security快速入门(三)自定义页面

    Spring Security快速入门(三)自定义页面一、登录页面二、自定义登录成功处理器三、失败跳转 引言:Spring Security 给我们提供了登录页面,但是对于实际项目中,大多喜欢使用自己的登录页面。 所以 Spring Security 中不仅仅提供了登录页面,还支持用户自定义登录页面。 实现过程也比较简单,只需要修改配置类即可。 一、登录页面 我们先准备一个自己的登录页面。需要注意的是,input的name属性,必须是username和password,否则Spring Security

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

    最近发现别人的博客风格不一样,研究了一下更改皮肤的教程1.点击我的博客,【管理博客】进入【博客设置】页面2.选总你想改变的模板,然后【右键】,点击【审查元素】或【检查】3.找到自己现在拥有的模板(有绿色勾勾)的那段代码。找到value和id的值4.找到你要替换的那个模板的代码,把value和id的值替换到步骤3的位置5.然后点击左边页面下方的“保存”按钮...

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

    1.登录CSDN后,鼠标移至头像上,“我的博客”,如下图所示, 2. 点击“管理博客”进入博客管理界面,右上角,如下图所示, 3.点击“换皮肤啦”,根据自己喜欢的皮肤进行跟换保存即可。

  • csdn博客皮肤设置和等级介绍

    前言 好多人并不知道csdn的皮肤设置,特意介绍下皮肤设置和等级提升信息 皮肤设置 皮肤快捷设置 进入其中一个分栏 选择换皮肤啦 切换旧版才可以继续换皮肤(算是有点小问题) 积分获取 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准。博客等级也将由博客积分唯一决定。积分规则具体如下: 1、每发布一篇原创或者翻译文章:可获得10分; 2、每发布一篇转载文章:可获得2分; 3、博主的文章每被评论一次:可获得1分; 4、每发表一次评论:可获得1分

  • 关于CSDN博客新皮肤公告

    亲爱的CSDN的博主和用户:从上周四晚上开始,我们对CSDN博客的皮肤做了一次全新的升级,在升级过程中也发现了很多bug, 我们在今天已紧急修复上线以下问题。1)Latex公式显示错乱 2)Markdown文章预览与显示不一致 3)代码折行 4)评论显示有时会出现重叠当然也还有更多的意见反馈和bug正在加班加点的修复中,很开心看到大家的反馈,说明您与我们一样关注着CSDN的成长,真的非常非常

  • csdn修改博客皮肤

    csdn修改博客皮肤 可以通过修改html文件的方式,官方有接口

  • 关于CSDN博客旧版皮肤下线公告!

    亲爱的CSDN的博主和用户:为了给大家带来更好的体验,和方便统一的管理,旧版的博客皮肤即将下线,下线后皮肤默认切换为新版大白皮肤。以后的大白皮肤也将是全站通用的皮肤模板,我们将更专心维护一套皮肤,大白如一个新生儿,也代表着CSDN全新的开始,也许它还不够完美,但我们可以一起见证它的成长,之前大家反馈的诸多问题,我们都有记录并且去努力去改变。我们也会在不久的将来给博主提供更多个性化和实用的功能,包括更

  • CSDN博客皮肤设置

    当你看到其他博客主们的博客界面很好看的时候,是不是自己也想设置成这样的呢?不幸的是新版CDSN博客皮肤设置已下线,所以无法在上面直接切换其他皮肤。 幸运的是,这里有其他方法,也能切换到你喜欢的皮肤,具体步骤如下: 1、打开个人的博客设置,然后按f12打开审查元素,使用选择器,选择当前皮肤。你会在文件中看到有类名为:opt-skin-box的div,这些都是皮肤。...

Global site tag (gtag.js) - Google Analytics