BOS项目2----登录,修改密码

1 根据提供的pdm文件生成sql

第一步:生成

第二步:在这个软件里 database 里点击generate database 保存 我保存在D:\webDemo\Bos19

第三步:在里生成表。

第四步:在myeclipse里使用创建链接

                                                       

 

 

第五步:右键t_user表 点击hibernate reverse engineering 将生成

这一步的前提是hibernate 的jar包是myeclipse自带的。创建一个java项目 如table2hbm 然后右键项目名 -》myeclipse->生成hibernate

生成的.xml文件存在一个小问题 就是约束文件版本不一致。可以查阅hibernate-mapping.3.0.dtd 进行查看。

总结day2

1.完成了 登录功能,

    重点是加入一个<a>标签  点击登录,提交表单数据到action。οnclick="document.forms[0].submit()"  

  当启动服务器时,就会加载struts.xml文件,ActionProxy读取配置信息调取action,然后返回result 。

2.利用ajax修改密码(Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术)

第一步:使用easy-ui的validatebox来验证。

   <form id="editPasswordForm">
	                <table cellpadding=3>
	                    <tr>
	                        <td>新密码:</td>
	                        <td><input id="txtNewPass" type="Password" class="txt01 easyui-validatebox" 
	                        	required="true" data-options="validType:'length[4,8]'"
	                        /></td>
	                    </tr>
	                    <tr>
	                        <td>确认密码:</td>
	                        <td><input id="txtRePass" type="Password" class="txt01 easyui-validatebox" 
	                        	required="true" data-options="validType:'length[4,8]'"
	                        /></td>
	                    </tr>
	                </table>
                </form>

第二步:为确定绑定事件

 <div region="south" border="false" style="text-align: right; height: 30px; line-height: 30px;">
                <a id="btnEp" class="easyui-linkbutton" icon="icon-ok" href="javascript:void(0)" >确定</a> 
                <a id="btnCancel" class="easyui-linkbutton" icon="icon-cancel" href="javascript:void(0)">取消</a>
            </div>

 <script type="text/javascript">
	  //为“确定”按钮绑定事件
		$("#btnEp").click(function(){
			//进行表单校验
			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");
				}
			}
		});
    </script>

做到这一步后可以在浏览器查看 密码是否更新 然后再下一步。同样,点击确认后会调到action

服务器端 :

第一步 :在action里添加editPassword方法。

第二步:在service接口IBaseDao里添加 editPassword方法

第三步:在service接口的实现类UserServiceImpl里 添加 editPassword方法

第四步:在Dao层 IBaseDao里提供通用修改方法

第五步:在Dao层BaseDao中扩展此方法

 

/**
	 * 修改当前登录用户密码
	 * @throws IOException 
	 */
	public String editPassword() throws IOException{
		User user = (User) ServletActionContext.getRequest().getSession().getAttribute("loginUser");
		String password = model.getPassword();//新密码
		password = MD5Utils.md5(password);
		String flag = "1";
		try{
			userService.editPassword(password,user.getId());
		}catch (Exception e) {
			//修改密码失败
			flag = "0";
		}
		ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
		ServletActionContext.getResponse().getWriter().print(flag);
		return NONE;
	}
//service的接口
public void editPassword(String password, String id);

//接口的实现类
public void editPassword(String password, String id) {
		userDao.executeUpdate("editPassword", password,id);
	}

//Dao层的接口IBaseDao
//提供通用修改方法
	public void executeUpdate(String queryName,Object ...objects);

/**
	 * 通用更新方法
	 */
	public void executeUpdate(String queryName, Object... objects) {
		Session session = this.getSession();// 从本地线程中获得session对象
		// 使用命名查询语句获得一个查询对象
		Query query = session.getNamedQuery(queryName);
		// 为HQL语句中的?赋值
		int i = 0;
		for (Object arg : objects) {
			query.setParameter(i++, arg);
		}
		query.executeUpdate();// 执行更新
	}

 

在User.hbm.xml中定义一个HQL语句,用于修改密码

   <!-- 命名查询语句 -->
    <query name="editPassword">
        UPDATE User SET password = ? WHERE id = ?
    </query>

OK至此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值