package nm; import java.util.Vector; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.sql.DataSource; import nm.user.model.NoticeBean; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; public final class CheckPowerAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //获取用户想要进行的操作的类型 String functiontype = request.getParameter("functiontype"); //使用struts-config.xml配置文件的数据源信息生成数据库操作类DB的对象 ServletContext context = servlet.getServletContext(); DataSource dataSource = (DataSource) context .getAttribute(Constants.DATASOURCE_KEY); DB db = new DB(dataSource); //新建需要用到的对象,并为其初始化。其中表示转发页面的pageForward 被初始化为ToErrorPage HttpSession session = request.getSession(); ActionMessages errors = new ActionMessages(); String pageForward = "ToErrorPage"; User loginuser = (User) session.getAttribute(Constants.LOGIN_USER_KEY); … //如果用户想要进行的操作的类型为删除用户(userdelete),则验证该用户 等级是否为管理员(admin) else if (functiontype.equals("userdelete")) { if (loginuser.getGrade().equals("admin")) { String username = request.getParameter("username"); //如果用户符合执行操作的权限要求,就使用User.delete方法删除选中的用户, //此项操作成功之后,从数据库中查到所有用户的信息包含进Vector,并存入session中, //然后将转发页面设置为ToUserEdit if (User.delete(db, username)) { Vector users = new Vector(); users = User.search(db, ""); session.setAttribute(Constants.USER_LIST_KEY, users); pageForward = "ToUserList"; } else { //如果User.delete方法操作失败, //则在ActionMessage对象中封装消息(由error.delete.failed所代表),并保存 到request范围内 //此时表示转发页面的pageForward对象仍然为初始值ToErrorPage errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.delete.failed")); if (!errors.isEmpty()) { saveErrors(request, errors); } } } else { //如果用户不符合执行操作的权限要求 //就在ActionMessage对象中封装消息(由error.power.delete.notadmin所代表) //并保存到request范围内,此时表示转发页面的pageForward对象 仍然为初始值ToErrorPage errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( " error.power.delete.notadmin ")); if (!errors.isEmpty()) { saveErrors(request, errors); } } } … //关闭数据库连接,并根据pageForward值将请求转发到相应路径 db.close(); return (mapping.findForward(pageForward)); } }
|