package com.jsx.login.action;
import java.util.Map;
import com.jsx.login.bean.UserBean;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String message;
public String getMessage() {
return message;
}
public UserBean userBean = new UserBean();
@SuppressWarnings("unchecked")
public String execute() throws Exception
{
if("1".equals(userBean.getUsername().trim()) && "1".equals(userBean.getPassword().trim()))
{
message= "登录成功!";
ActionContext context = ActionContext.getContext();
Map request = (Map)context.get("request");
Map session = context.getSession();
Map application = context.getApplication();
//在请求中放入欢迎信息
request.put("greeting", "欢迎来到程序员之家!");
//在session中保存用户信息
session.put("username", userBean.getUsername().trim());
//统计用户访问量,在application中保存用户访问量数据
Integer count = (Integer)application.get("counter");
if(null == count)
count=1;
else count++;
application.put("counter", count);
//请求对象来传递数据还有一种方式,你可以直接使用ActionContext类的put()方法将数据保存到ActionContext中
ActionContext.getContext().put("hello","struts2成功入门,恭喜你!");
return SUCCESS;
}
else
{
addActionError("用户名或密码错误!");
// this.addFieldError("username", "用户名或密码错误!");
return ERROR;
}
}
@Override
/**
* validate()方法是校验方法。
* 当遇到addFieldError("")这个时候表示校验中有错误。就相当于return “INPUT”;
* 这时就跳转到<result name="input">login2.jsp</result>这个页面。并且将addFieldError中的错误信息反馈过去。
* 如果validate()方法没有遇到校验错误。就继续执行方法,默认的是execute方法。
* validate()是提交这个action后第一个执行的方法。
*/
public void validate() {
if (null == userBean.getUsername() || "".equals(userBean.getUsername()) )
{
addActionMessage("账号不能为空!");
// this.addFieldError("username", "账号不能为空!");
}
if (null == userBean.getPassword() || "".equals(userBean.getPassword()) )
{
addActionMessage("密码不能为空!");
// this.addFieldError("password", "密码不能为空!");
}
}
}