1.首先使用ajax,json串来判断旧密码输入的是否正确,和数据库中的密码是否一致。首先就是在jsp界面中写代码。还有记得引入<script src="${pageContext.request.contextPath}/js/jquery-1.7.min.js"></script>。要不执行不了jQuery的代码。
<script>
$(function(){
$('#oldpwd').blur(function(){//设置一个鼠标离开的事件
var oldpwd = $('#oldpwd').val();
$.post("mmxglist",{oldpwd:oldpwd},function(ret){//执行mmxglist的方法,ret是controller中用来接收数据的
if(ret.mm == oldpwd){//判断数据库中的密码和文本框中输入的密码是否一致
$('#oldpwd2').text('密码输入正确');
}else{
if(oldpwd == "" || oldpwd == null){
$('#oldpwd2').text('原密码不能为空');
}else{
$('#oldpwd2').text('密码错误,请重新输入');
}
}
},"json")
})
})
</script>
2.在逻辑层调用业务层的方法
//修改密码,根据id查询出对应的密码,然后对比
@RequestMapping("/user/mmxglist")
@ResponseBody//使用了ajax的注解
public String mm(HttpSession httpSession) {
@SuppressWarnings("unchecked")
List<Map<String, Object>> userinfo = (List<Map<String, Object>>) httpSession.getAttribute("user");
int emid = (Integer) userinfo.get(0).get("ID");//从session中获得员工编号
String mm = userDao.mmxg(emid);//调用业务层的方法
Map<String, Object> noMap = new HashMap<String, Object>();//创建一个集合
noMap.put("mm", mm);//把取到的值放到集合中
String str = JSON.toJSONString(noMap);//转化为json的串
return str;//传到jsp文件中
}
//修改数据库中的密码
@RequestMapping("/user/updatepwd")
public String updatepwd(HttpSession httpSession,HttpServletRequest request) {
@SuppressWarnings("unchecked")
List<Map<String, Object>> userinfo = (List<Map<String, Object>>) httpSession.getAttribute("user");
int emid = (Integer) userinfo.get(0).get("ID");//员工编号
String qrmm = request.getParameter("qrpwd");//从前台获取到密码,作为参数
userDao.updatepwd(qrmm, emid);//调用修改密码的方法
return "redirect:/";//修改完密码之后重新登录
}
3.在Dao文件中写查询旧密码,还有修改密码的方法
//查询出对应的emid,所对应的
public String mmxg(Integer emid) {
String sql = "select USER_PWD FROM task_user where TASK_EMPLOYEE_ID = ?";
String mm = jt.queryForObject(sql, String.class,emid);
return mm;
}
//重新设置密码
public void updatepwd(String qrmm,Integer emid) {
String sql = "update task_user set USER_PWD=? WHERE TASK_EMPLOYEE_ID = ?";
jt.update(sql,qrmm,emid);
}