struts2 action中属性与表单中提交的字段的关系如下,在使用时可以自动获取对应的值,无需手动获取。
package com.yht.web;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.yht.model.User;
import com.yht.service.UserService;
import com.yht.util.AppException;
public class Login extends ActionSupport {
private String name;
private String password;
private String massage;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMassage() {
return massage;
}
public void setMassage(String massage) {
this.massage = massage;
}
@Override
public String execute() {
String result="";
try {
int id = new UserService().login(name, password);
User u = new User();
u.setName(name);
u.setId(id);
u.setPassword(password);
if(id!=0){
massage = "登录成功";
ActionContext context = ActionContext.getContext();
Map<String,Object> session = context.getSession();
session.put("userId", id);
session.put("username", name);
int role = new UserService().getUserRole(id);
if(role==0)//普通编辑
{
result = "toEditor";
}else if(role==1)//管理员
{
result = "toAdmin";
}
}else{
result = "toLogin";
massage = "登录失败";
}
} catch (AppException e) {
result = "error";
massage = "系统异常"+ e.getMessage();
}
return result;
}
}
在struts.xml中配置这个action
<package name="news" extends="struts-default">
<!-- 接受登录信息,分发登录结果 -->
<action name="login" class="com.yht.web.Login">
<result name="toEditor" type="redirectAction">toEditor</result>
<result name="toAdmin" type="redirectAction">toAdmin</result>
<result name="toLogin" type="dispatcher">/login.jsp</result>
</action>
</package>