Welcome

首页 / 软件开发 / 数据结构与算法 / 通向架构师的道路 第二十二天 万能框架spring(四) 使用struts2 中

通向架构师的道路 第二十二天 万能框架spring(四) 使用struts2 中2013-02-19 csdn lifetragedy4.2 struts2中的类的书写

struts2中的action就是一个普通的class,它的public方法名就是一个具体的action,这相当于原有struts1中的DispatchAction,只不过它做的更加灵活。

如:我有一个按钮叫addStudent,如果你在你的action的类中有一个publicString addStudent()方法,那么你的这个按钮对应的action名就叫/addStudent.action(神奇吧)。

我们对应着“<action name="login"class="org.sky.ssh.login.action.LoginAction">”来看我们的login.action吧,前面的这个<actionname=””>后面的东西就是我们的web路径即相当于“/login.action”。

org.sky.ssh.login.action.LoginAction类

package org.sky.ssh.login.action;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
importorg.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.sky.ssh.service.LoginService;
import org.sky.ssh.util.Constants;
import org.sky.ssh.util.session.UserSessionInfo;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport implementsSessionAware, ServletRequestAware, ServletResponseAware {
protectedfinal Log logger = LogFactory.getLog(getClass());
privateMap att;
privateHttpServletRequest request = null;
privateHttpServletResponse response;
@Resource
LoginServiceloginService;
publicvoid setServletRequest(HttpServletRequest request) {
this.request= request;
}
publicvoid setServletResponse(HttpServletResponse response) {
this.response= response;
}
publicvoid setSession(Map att) {
this.att= att;
}
publicString execute() throws Exception {
StringloginId = "";
StringloginPwd = "";
HttpSessionsession = request.getSession();
StringloginCode = "100";
try{
loginId= (String) request.getParameter("loginId");
loginPwd= (String) request.getParameter("loginPwd");
if(loginService.login(loginId, loginPwd)) {
UserSessionInfouinfo = new UserSessionInfo();
uinfo.setLoginId(loginId);
session.setAttribute(Constants.USER_SESSION,uinfo);
}else {
loginCode= "101";
}
request.setAttribute("loginCode",loginCode);
if(!loginCode.equals("100")) {
RequestDispatcherdispatcher = request.getRequestDispatcher("/jsp/login/login.jsp");
dispatcher.forward(request,response);
}
returnSUCCESS;
}catch (Exception e) {
logger.error("UserLoginException:" + e.getMessage(), e);
thrownew Exception("UserLogin Exception:" + e.getMessage(), e);
}
}
}