⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginaction.java

📁 利用STRUTS2+SPRING+HIBERNATE/IBATIS建立的基本开发框架
💻 JAVA
字号:
/**
 * 
 */
package com.sunwah.baseapp.system.action;

import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;
import com.sunwah.baseapp.common.Constants;
import com.sunwah.baseapp.common.SqlConstants;
import com.sunwah.baseapp.service.QueryManager;
import com.sunwah.baseapp.system.criteria.FunctionQueryCriteria;
import com.sunwah.baseapp.system.model.Functions;
import com.sunwah.baseapp.system.model.Users;
import com.sunwah.baseapp.system.service.UserManager;
import com.sunwah.baseapp.system.service.UserManagerResult;
import com.sunwah.baseapp.system.service.UserManagerStatusCodes;
import com.sunwah.baseapp.system.vo.UserVO;

/**
 * 用户登录ACTION类
 * 
 * @author MARK
 * 
 */
public class LoginAction extends ActionSupport implements SessionAware {
	/**
	 * 
	 */
	private static final long serialVersionUID = 2077381350562494083L;

	private static Logger logger = Logger
			.getLogger(LoginAction.class.getName());

	private Map session;

	private UserManager userManager;

	private QueryManager queryManager;

	private String loginName;

	private String password;

	private String validateCode;

	@Override
	public String execute() throws Exception {
		String result = INPUT;

		Object obj = session.get(Constants.SESSION_VER_CODE);
		// 验证码过期
		if (obj == null) {
			addFieldError("validateCode", getText("validateCode.overdue"));
			result = LOGIN;
		} else {
			String verCode = (String) obj;
			// 失效验证码
			session.put(Constants.SESSION_VER_CODE, null);
			if (verCode.equals(validateCode)) {
				UserManagerResult manageResult = this.userManager.login(
						loginName, password);
				switch (manageResult.getStatusCode()) {
				case UserManagerStatusCodes.INVALID_LOGIN_NAME:
					this.addActionError(getText("loginName.error"));
					break;
				case UserManagerStatusCodes.OVERDUE_LOGIN_NAME:
					this.addActionError(getText("loginName.overdue"));
					break;
				case UserManagerStatusCodes.INVALID_PASSWORD:
					this.addActionError(getText("password.error"));
					break;
				case UserManagerStatusCodes.OVERDUE_PASSWORD:
					this.addActionError(getText("password.overdue"));
					break;
				case UserManagerStatusCodes.OK:
					// 登录成功
					Users user = manageResult.getUser();
					UserVO userVO = new UserVO();
					userVO.setUserId(user.getUserId());
					userVO.setUserName(user.getUserName());
					userVO.setLoginName(user.getLoginName());
					userVO.setResourceList(manageResult.getResourceList());
					session.put(Constants.SESSION_USER, userVO);

					List functionList = null;
					// 获取菜单
					if (user.getUserId().equals(Constants.ROOT_USER_ID))
						functionList = this.queryManager
								.queryForList(SqlConstants.GET_ALL_AVAILABLE_MENUS);
					else {
						FunctionQueryCriteria queryCriteria = new FunctionQueryCriteria();
						queryCriteria.setUserId(user.getUserId());
						functionList = this.queryManager.queryForList(
								SqlConstants.GET_USER_AVAILABLE_MENUS,
								queryCriteria);
					}

					StringBuffer buffer = new StringBuffer(
							"<script type=\"text/javascript\">");
					buffer.append("d = new dTree('d');");
					buffer.append("d.config.folderLinks=false;");
					buffer.append("d.add(0,-1,'');");
					Functions function = null;
					for (Object object : functionList) {
						function = (Functions) object;
						buffer.append("d.add(");
						buffer.append(function.getFunctionId());
						buffer.append(",");
						buffer.append(function.getParentFuncId());
						buffer.append(",'");
						buffer.append(function.getFunctionName());
						buffer.append("','");
						buffer.append(function.getAssemblyName());
						buffer.append("');");
					}
					buffer.append("document.write(d);");
					buffer.append("</script>");
					session.put(Constants.SESSION_MENU, buffer.toString());
					result = SUCCESS;
					logger.debug(user.getLoginName() + " login success");
					break;
				default:
					result = ERROR;
				}
			} else {
				this.addActionError(getText("validateCode.error"));
			}
		}
		return result;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getValidateCode() {
		return validateCode;
	}

	public void setValidateCode(String validateCode) {
		this.validateCode = validateCode;
	}

	public void setSession(Map session) {
		this.session = session;
	}

	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}

	public void setQueryManager(QueryManager queryManager) {
		this.queryManager = queryManager;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -