这篇“如何用SSM修改密码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用SSM修改密码”文章吧。
HTML代码
<div id="dlg"> <form id="fm"> <div class="ditem"> <label for="oldpass">旧密码</label> <input type="password" id="oldpass" name="oldpass" class="k-textbox" minlength="6" maxlength="20" required="required"/> </div> <div class="ditem"> <label for="newpass">新密码</label> <input type="password" id="newpass" name="newpass" class="k-textbox" minlength="6" maxlength="20" required="required"/> </div> <div class="ditem"> <label for="repassword">密码确认</label> <input type="password" id="repassword" name="repassword" class="k-textbox" minlength="6" maxlength="20" required="required"/> </div> </form> <div class="buttons-wrap"> <button type="button" class="k-button" onclick="javascript: $('#dlg').data('kendoWindow').close();">关闭</button> <button type="button" class="k-button k-state-selected" id="save" onclick="save()">保存</button> </div></div>
使用ajax.form表单提交方式
/*初始form表单*/ $(function () { frm = $('#fm'); frm.validate({ errorPlacement: function (error, element) { showReq(error.text(), element) } }); })
在保存时添加一个事件
//修改密码 $("#save").click(function () { if (!frm.valid()) { return; } frm.ajaxSubmit({ url: ctx + "/user/updatePassword", //给后台发送一个请求 success: function (data) { //从后来返回一个数据 if (data.status === 1) { showTip('密码修改成功。', true); } else { kendo.ui.ExtAlertDialog.show({message: data.data}); } } });
Java后台代码
Controller层
/** * 修改密码功能 * * @return */ @RequestMapping(value = "/updatePassword") public String updatePassword(HttpServletRequest request) { //从sesson中获取当前登陆的用户 User loginedUser = SessionState.getLoginedUser(request); //获取旧密码 String oldPwd = ConvertUtil.StringToNull(request.getParameter("oldpass")); //获取新密码 String newPwd = ConvertUtil.StringToNull(request.getParameter("newpass")); ResultBean resultBean = userService.updatePassword(loginedUser, oldPwd, newPwd); return resultBean.toString(); }
Service层
/** * 修改密码功能 * @param loginUser * @param newPass * @param oldPass */ //返回一个Bean ResultBean updatePassword(User loginUser , String oldPass, String newPass);
Service实现层
/** * 修改密码功能 * * @param loginUser * @param newPass * @param oldPass */ public ResultBean updatePassword(User loginUser, String oldPass, String newPass) { User _user = userDao.findById(loginUser.getUserId()); if (_user == null) { return new ResultBean(-3, "账号不存在。"); } if (!SecurityUtil.authenticatePassword(_user.getUserId(), _user.getPwd(), oldPass)) { return new ResultBean(-4, "密码错误,请重新输入。"); } int affectRows = changePwd(_user.getUserId(), newPass, loginUser); if (affectRows == 1){ return new ResultBean(1, "修改成功"); } return new ResultBean(-5, ""); }
UserDao
/** * 修改密码 * @param user * @return */ int changePwd(User user);
UserMapper.xml
<!-- 修 改--> <update id="changePwd" parameterType="wms.entity.sys.User"> UPDATE USERS SET PWD = #{pwd, jdbcType=VARCHAR}, UPDATE_BY = #{updateBy, jdbcType=VARCHAR}, UPDATE_DATE = #{updateDate} WHERE U_ID = #{userId, jdbcType=INTEGER} </update>
上边封装的工具类
package util;import org.springframework.util.StringUtils;import java.math.BigDecimal;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.regex.Pattern;public class ConvertUtil { /** * 检查字符串是否为null、""或" " * @param str * 字符串 * @return null、""或" "返回true,否则返回false */ public static boolean isNullOrEmpty(String str){ return !StringUtils.hasText(str); } /** * 将Object转换为String,若为空,则转换为null * @param obj * Object * @return null或字符串 */ public static String toString(Object obj){ if (StringUtils.isEmpty(obj)) return null; else return obj.toString(); } /** * 将字符串"on"转换为"Y",否则为“N” * @param str * @return "on" -> "Y",否则为"N" */ public static String toActiveString(String str){ if (isNullOrEmpty(str)) return "N"; else if(str.equals("on")) return "Y"; else return "N"; } /** * 将以","作为分隔符的字符串转为List<String> * @param str * @return List<String> */ public static List<String> toList(String str) { if (isNullOrEmpty(str)) return null; else { String[] arr = str.split(","); return java.util.Arrays.asList(arr); } } /** * 将空字符串转换为null,将带有空格的字符串trim * @param str * 待处理字符串 * @return null或字符串 */ public static String StringToNull(String str){ if (isNullOrEmpty(str)) return null; else return str.trim(); } /** * 字符串转换为日期类型(Date,不是DateTime) * @param str 格式:yyyy-MM-dd * @return * @throws ParseException */ public static Date toDate(String str) throws ParseException { if (isNullOrEmpty(str)) return null; else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.parse(str); } } /** * 字符串转换为日期类型(DateTime,不是Date) * @param str 格式:yyyy-MM-dd HH:mm * @return * @throws ParseException */ public static Date toDateTime(String str) throws ParseException { if (isNullOrEmpty(str)) return null; else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); return sdf.parse(str); } } public static Date toDate(String str, String formater) throws ParseException { if (isNullOrEmpty(str)) return null; else { SimpleDateFormat sdf = new SimpleDateFormat(formater); return sdf.parse(str); } } /** * 将日期转换为指定格式的字符串 * @param date * @param formater * @return */ public static String toDateString(Date date, String formater){ return new SimpleDateFormat(formater).format(date); } public static Double toDouble(String str){ if (isNullOrEmpty(str)) return null; else return Double.parseDouble(str); } public static BigDecimal toDecimal(String str){ if (isNullOrEmpty(str)) return null; else return new BigDecimal(str); } public static Integer toInteger(String str){ if (isNullOrEmpty(str)) return null; else return Integer.parseInt(str); } /** * 判断是否为整数 * @param str 传入的字符串 * @return 是整数返回true,否则返回false */ public static boolean isInteger(String str){ Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } /** * 将字节数组转换为十六进制字符串 * * @param b * 字节数组 * @return 十六进制字符串 */ public static String bytesToHexString(byte[] b){ StringBuilder stringBuilder = new StringBuilder(""); for (int i = 0; i < b.length; i++) { int v = b[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } /** * 将十六进制字符串转换字节数组 * * @param hexString * 十六进制字符串 * @return 字节数组 */ public static byte[] hexStringToBytes(String hexString) { hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for (int i = 0; i < length; i++) { int pos = i * 2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); } return d; } /** * 将char转换为byte * @param c char * @return byte */ private static byte charToByte(char c) { return (byte)"0123456789ABCDEF".indexOf(c); } }
ResultBean.java
package wms.entity;import com.alibaba.fastjson.JSONObject;import java.util.Objects;/** * Created by liwm on 2015/11/30 10:36. * DESC: */public class ResultBean { public ResultBean(int status, Object data){ this.status = status; this.data = data; } /** * 状态标记 */ private int status; /** * 返回的详细结果 */ private Object data; public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } @Override public String toString(){ return String.format("{\"status\":%s,\"data\":\"%s\"}", status, data); } }
以上就是关于“如何用SSM修改密码”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。