标签:des 点击事件 ack password 重要 导入数据库 alert log 标题
用pdesigner设计出t_user.pdm,导入数据库,向t_user中插入一条测试用户数据
insert into t_user(id,username,password) values(‘1’,’test’,md5(‘123’))
这个需要注意的是md5加密。在业务层进行判断时也要把页面传过来的密码进行md5加密和这个密码进行比较,这里我写了一个md5的工具类。代码如下:
public static String md5(String plainText) { byte[] secretBytes = null; try { secretBytes = MessageDigest.getInstance("md5").digest( plainText.getBytes()); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("没有md5这个算法!"); } String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字 // 如果生成数字未满32位,需要前面补0 for (int i = 0; i < 32 - md5code.length(); i++) { md5code = "0" + md5code; } return md5code; }
自定义一个登录拦截器
-------------------
struts只能识别默认的拦截器栈
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="bosLoginInterceptor" class="com.itheima.bos.web.interceptor.BOSLoginInterceptor">
<param name="excludeMethods">login</param>
</interceptor>
<!-- 拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="bosLoginInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mystack"/>
页面使用多个样式用空格隔开,例如
class=”txt01 easyui-validatebox”
var v = $("#editPasswordForm").form("validate");//对应表单中的所有输入框进行校验 if(v){//表单校验通过 //判断两次输入是否一致 var v1 = $("#txtNewPass").val(); var v2 = $("#txtRePass").val(); if(v1 == v2){ //输入一致,发送ajax请求,修改当前用户的密码 var url = "${pageContext.request.contextPath}/userAction_editPassword.action"; $.post(url,{"password":v1},function(data){ if(data == '1'){ //修改密码成功 $.messager.alert("提示信息","密码修改成功!","info"); }else{ //修改失败 $.messager.alert("提示信息","密码修改失败!","warning"); } //关闭修改密码的窗口 $("#editPwdWindow").window("close"); }); }else{ //输入不一致,提示用户输入不一致 $.messager.alert("提示信息","两次输入密码不一致!","warning"); } }在编写dao时遇到了命名查询语句,它就是在对象映射文件domain.hbm.xml中的一个query标签
<query name=""> sql语句 </query>hibernate模板并没有提供命名语句查询,
Session session = this.getSession();// 从本地线程中获得session对象 // 使用命名查询语句获得一个查询对象 Query query = session.getNamedQuery(queryName); // 为HQL语句中的?赋值 int i = 0; for (Object arg : objects) { query.setParameter(i++, arg); } query.executeUpdate();// 执行更新在action中直接使用提示信息不太合理,改进措施把这些信息放到国际化配置文件中(message.properties) ActionSupport类中提供了一个读取配置文件的方法getText("配置文件中的key")在struts.xml中注册这个配置文件的位置,
<constant name="struts.custom.i18n.resources" value="message">
<font color="red"> <s:actionerror/> </font>
准备工作,在jsp页面中引入easyUI相关的资源文件
这个布局容器,有五个区域:北、南、东、西和中心。 他中心地区面板是必需的(特别注意),但是边缘地区面板是可选的。每一个边缘地区面板可以缩放的拖动其边境, 他们也可以通过点击其收缩触发.布局可以嵌套,从而用户可以建立复杂的布局,他想要的。
使用规则(重要)
在要使用的块状元素中添加class=”easyui-layout”,使用div指定区域使用easyui提供的data-options=”region:’north’”北部区域
data-options=”region:’south’”南部区域
data-options=”region:’west’”西部区域
data-options=”region:’east’”东部区域
这时页面显示的效果并不好,要在北部区域和南部区域div加上style=”height:100px”指定高度
在西部和东部div加上style=”width:100px”指定高度 在div上加上title属性显示标题,自带折叠效果
使用规则(重要)
在区域div中加入折叠面板div添加属性class=”easyui-accordion”,添加属性data-options=”fit:true”,表示自动填充区域div,每一个子div就是一个面板,在div上添加title属性显示标题,通常放在西部区域里面。
使用规则(重要)
在中部区域加入选项卡面板div添加属性class=”easyui-tabs”,添加属性data-options=”fit:true”,表示自动填充区域div,在子div中,添加性data-options=”closable:true,iconCls:’icon-add’”表示这个div是可关闭的,面板的图标是添加,面板的图标可以到引入的icon.css中找到。
我已经在官网上下载ztree插件,里面包括api
在页面导入资源文件
使用规则(重要)
第一种方式:使用标准json数据构成ztree(了解)
<ul id="ztree1" class="ztree"></ul> $(function(){ //当页面加载完成后动态创建菜单 var setting={};//设置标准的ztree属性 //构造json数据 var zNodes=[//每个json数据代表一个节点 { name:'系统管理' }, { name:'用户管理',children:[{name:'用户添加'},{name:'用户修改'}] }, { name:'权限管理' } ]; //创建ztree $.fn.zTree.init( $("#ztree1"), setting, zNodes ); });
第二种方式:使用简单json数组数据构成ztree(推荐)
在实际开发中我们的节点数据一般来自于系统的业务数据,可以发送ajax请求找action要数据,然后赋给treeNodes
<ul id="ztree2" class="ztree"></ul> $(function(){ //当页面加载完成后动态创建菜单 var setting = { data: { simpleData: { enable: true,//启用简单数组数据 idKey: "id", pIdKey: "pId", rootPId: 0 } } }; var treeNodes = [ {"id":1, "pId":0, "name":"test1"}, {"id":11, "pId":1, "name":"test11"}, {"id":12, "pId":1, "name":"test12"}, {"id":111, "pId":11, "name":"test111"} ]; //创建ztree $.fn.zTree.init( $("#ztree2"), setting, treeNodes ); });
function zTreeOnClick(event, treeId, treeNode) {
var page=treeNode.page;
if(page!=undefined){//需要打开选项卡
//判断当前选项卡是否已经打开
var isExists= $("#tt").tabs("exists",treeNode.name);
if(isExists){
$("#tt").tabs("select",treeNode.name);
}else{
$("#tt").tabs("add",
{
title: treeNode.name,
content: '<iframe src="'+page+'" width="100%" frameborder="0" height="100%"></iframe>',
closable: true,
iconCls: 'icon-search'
}
);
}
}
};
var setting = {
callback: {
onClick: zTreeOnClick
}
};
默认的提示框上面的按钮显示为ok,要想显示为中文,需要引入easyui下面locale下面的
easyui-lang-zh_CN.js
$.messager.alert(“标题”,”内容信息”,”question/error/info/warning”);
window.setTimeout(function(){
$.messager.show({
title:'欢迎信息',
msg:'欢迎张三登录系统',
timeout:3000,
showType:'slide'
});
}, 3000);
$.messager.confirm("提示信息","你确定删除当前数据吗?",function(r){
alert(r);
});
$.messager.prompt("提示信息","你确定删除当前数据吗?",function(r){
alert(r);
});
//打开进度条
$.messager.progress();
//关闭进度条
$.messager.progress(‘close’);
标签:des 点击事件 ack password 重要 导入数据库 alert log 标题
原文地址:https://www.cnblogs.com/petewell/p/11601786.html