现在我们需要准备修改密码的持久化服务,双击打开com.bstek.dorado.sample.standardlesson.middle包下的LoginServiceForMiddle类,为其增加changePassWord方法,最终代码如下:
package com.bstek.dorado.sample.standardlesson.middle;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.sample.standardlesson.dao.SlEmployeeDao;
import com.bstek.dorado.sample.standardlesson.entity.SlEmployee;
import com.bstek.dorado.web.DoradoContext;
@Component
public class LoginServiceForMiddle {
@Resource
private SlEmployeeDao slEmployeeDao;
@Expose
public Map doLogout(){
DoradoContext ctx = DoradoContext.getCurrent();
HttpServletRequest request = request = ctx.getRequest();
request.getSession().setAttribute("user", null);
Map result = new HashMap();
result.put("url", "com.bstek.dorado.sample.standardlesson.middle.Login.d");
result.put("result", true);
return result;
}
@Expose
@Transactional
public void changePassWord(String newPassWord){
DoradoContext dc = DoradoContext.getCurrent();
HttpSession session = dc.getRequest().getSession();
SlEmployee employee = (SlEmployee)session.getAttribute("user");
employee.setPassword(newPassWord);
slEmployeeDao.getSession().update(employee);
}
}
可以看到changePassWord比较简单,从session中取出用户对象,修改用户密码信息后,将用户信息持久化。