设为首页 收藏本站
查看: 1087|回复: 0

[经验分享] Spring3 MVC 教程 (Mybatis+ExtJS基本权限管理)

[复制链接]

尚未签到

发表于 2016-11-27 12:39:06 | 显示全部楼层 |阅读模式
Spring3 MVC 教程 (Mybatis+ExtJS基本权限管理)
说明:

  • 验证码:采用开源的https://code.google.com/p/kaptcha/,代码自己修改了部分。
  • 上传文件:swfupload,参考论坛里面的另外一个帖子。
  • ext的tab非iframe模式,只加载一次ExtJS,速度还可以~自己命名jsp里面的变量的时候注意变量ID不要重复 参加下面部分js代码
  • 框架采用了mybatis+spring3MVC,应该说是学习springmvc的好例子。代码都有详细注释。
  • js的加载采用了yepnope,是一个基于条件的异步资源(JS和CSS)加载工具
  • mybatis的配置文件的生成采用了自己修改的mybatis的工具。mybatis-generator 修改版

其他:
附件为maven构建的工程,需要lib的可以去网盘下载,里面也有base_power.pdm文件,可以自己转为mysql的脚本。
建库语句在war包里面的readme文件夹下面
7z的分卷压缩老是搞不好,只好贴网盘地址了
http://dl.dbank.com/c0bakwliui

// tab主面板
index.tabPanel = new Ext.TabPanel({
id: 'mainTabPanel',
region: 'center',
activeTab: 0,
deferredRender: false,
enableTabScroll: true,
// bodyStyle:'height:100%',
defaults: {
layout: 'fit',
autoScroll: true
},
plugins: new Ext.ux.TabCloseMenu({
closeTabText: '关闭标签页',
closeOtherTabsText: '关闭其他标签页',
closeAllTabsText: '关闭所有标签页'
}),
items: [{
id: 'home',
title: '我的主页',
iconCls: 'home',
closable: false,
autoScroll: true,
autoLoad: {
url: index.welcome,
scripts: true,
nocache: true
}
}],
listeners: {
'bodyresize': function (panel, neww, newh) {
// 自动调整tab下面的panel的大小
var tab = panel.getActiveTab();
var centerpanel = Ext.getCmp(tab.id + "_div_panel");
if (centerpanel) {
centerpanel.setHeight(newh - 2);
centerpanel.setWidth(neww - 2);
}
}
}
});



<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="/WEB-INF/views/commons/taglibs.jsp"%>
<div id="changePwdDiv" style="width: 100%; height: 100%;">
<div id="changePwdToolBarDiv"></div>
<div id="changePwdFormDiv"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
//yepnope("${ctx}/resources/js/user/changepwd.js");
Ext.ns("Ext.Authority.changepassword"); // 自定义一个命名空间
changepwd = Ext.Authority.changepassword; // 定义命名空间的别名
changepwd = {
changeurl : ctx + "/user/changepwd"
};
// 编辑用户Form
changepwd.changePwdFormPanel = new Ext.form.FormPanel({
renderTo : 'changePwdFormDiv',
border : false,
defaults : {
xtype : "textfield",
labelWidth : 50
},
bodyStyle : 'padding:5px;background-color:transparent;',
items : [ {// 原密码
id : 'old_password',
name : 'old_password',
inputType : "password",
fieldLabel : '原密码',
anchor : '99%',
allowBlank : false,
maxLength : 32
}, { // 新密码
id : 'new_password',
name : 'new_password',
inputType : "password",
fieldLabel : '新密码',
anchor : '99%',
allowBlank : false,
maxLength : 32
}, {// 确认密码
id : 'compare_password',
name : 'compare_password',
inputType : "password",
fieldLabel : '确认密码',
vtype : "password",// 自定义的验证类型
vtypeText : "两次输入的密码不一致!",
confirmTo : "new_password",// 要比较的另外一个的组件的id
anchor : '99%',
allowBlank : false,
maxLength : 32
}, {// 账户ID
xtype : 'hidden',
name : 'userId',
value : '${user.userId}'
} ]
});
// 工具栏
changepwd.changePwdToolbar = new Ext.Toolbar({
renderTo : 'changePwdToolBarDiv',
items : [ new Ext.Button({
text : '保存',
iconCls : 'save',
handler : function() {
var form = changepwd.changePwdFormPanel.getForm();
if (form.isValid()) {
var values = form.getValues();
// 发送请求
Share.AjaxRequest({
url : changepwd.changeurl,
params : {
oldPassword : Ext.MD5(values.old_password),
newPassword : Ext.MD5(values.new_password),
comparePassword : Ext.MD5(values.compare_password),
userId : values.userId
},
callback : function(json) {
// 重新登录
Share.getWin().location = ctx;
},
falseFun : function(json) {//失败后想做的个性化操作函数
if (json.msg.indexOf('原密码不正确!请重新输入') > -1) {
$("#old_password").focus().val('');
return;
}
if (json.msg.indexOf('两次输入的新密码不一致') > -1) {
$("#new_password").val('');
$("#compare_password").val('').focus();
return;
}
if (json.msg.indexOf('请输入正确的帐号和其注册邮箱') > -1) {
return;
}
}
});
}
}
}), new Ext.Button({
text : '取消',
iconCls : 'cancel',
handler : function() {
header.changePwdWindow.close();
}
}) ]
});
var events = "beforecopy beforepaste beforedrag contextmenu selectstart drag paste copy cut dragenter";
$("#old_password").bind(events, function(e) {
if (e && e.preventDefault)
e.preventDefault();
else
window.event.returnValue = false;
return false;
});
$("#new_password").bind(events, function(e) {
return false;
});
$("#compare_password").bind(events, function(e) {
return false;
});
});
</script>


代码不多贴了,上图片吧。
DSC0000.jpg
DSC0001.jpg
DSC0002.jpg

DSC0003.jpg

DSC0004.jpg
DSC0005.jpg
DSC0006.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306228-1-1.html 上篇帖子: [转]mybatis下的分页,支持所有的数据库 下篇帖子: MyBatis与Spring、commons-dbcp的集成开发(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表