在struts2中,action在MVC中充当模型还是控制器角色?
在struts2中,action在MVC中充当模型还是控制器角色?
关注者
13
被浏览
2316
5 个回答
当然是控制器了,里面虽然有相应的数据,并且有get 和set 方法,不过这些参数都是控制器进行控制转发处理逻辑的时候需要的数据,比如之前你单写Servlet的时候,Request和Response里面总要读取和填充数据吧?
现在全部交由Struts2的Action组件来做了,懂否?
比如下面的例子
Type UserName PassWord 本来应该从Request对象的getParameter方法中获取的,不过现在全部封装隐藏了,返回值msg也封装了,这是response中body的数据,就这样。。。。。
现在全部交由Struts2的Action组件来做了,懂否?
比如下面的例子
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.dao.AdminDao;
import com.dao.StudentDao;
import com.dao.TeacherDao;
import com.opensymphony.xwork2.ActionSupport;
public class GoLogin extends ActionSupport {
	//下面是Action内用于封装用户请求参数和响应参数的属性
	private String Type;
	private String Username;
	private String Password;
	private String Msg;
	public String getType() {
		return Type;
	}
	public void setType(String type) {
		Type = type;
	}
	public String getUsername() {
		return Username;
	}
	public void setUsername(String username) {
		Username = username;
	}
	public String getPassword() {
		return Password;
	}
	public void setPassword(String password) {
		Password = password;
	}
	public String getMsg() {
		return Msg;
	}
	public void setMsg(String msg) {
		Msg = msg;
	}
	//处理用户请求的execute方法
	public String execute() throws Exception {
		
		System.out.println(Username + " " + Password);
		
		if(Type.equals("系统管理员"))
		{
			if (null == new AdminDao().CheckLogin(Username, Password)) {
				Msg = "用户名或者密码错误";
				return INPUT;
			}
			else
			{
				//获取ID
				String Admin_ID=new AdminDao().CheckLogin(Username, Password);
				//创建session
				HttpSession session = ServletActionContext.getRequest().getSession();
				session.setAttribute("id", Admin_ID);
				session.setAttribute("type", "1");
				return SUCCESS;
			}
		}
		else if(Type.equals("楼宇管理员"))
		{
			if (null == new TeacherDao().CheckLogin(Username, Password)) {
				Msg = "用户名或者密码错误";
				return INPUT;
			}
			else
			{
				//获取ID
				String Teacher_ID=new TeacherDao().CheckLogin(Username, Password);
				//创建session
				HttpSession session = ServletActionContext.getRequest().getSession();
				session.setAttribute("id", Teacher_ID);
				session.setAttribute("type", "2");
				
				return SUCCESS;
			}
		}
		else if(Type.equals("学生"))
		{
			if (null == new StudentDao().CheckLogin(Username, Password)) {
				Msg = "用户名或者密码错误";
				return INPUT;
			}
			else
			{
				//获取ID
				String Student_ID=new StudentDao().CheckLogin(Username, Password);
				//创建session
				HttpSession session = ServletActionContext.getRequest().getSession();
				session.setAttribute("id", Student_ID);
				session.setAttribute("type", "3");
				return SUCCESS;
			}
		}
		else
		{
			Msg = "身份类型错误";
			return INPUT;
		}
		
	}
}
https://struts.apache.org/docs/coding-struts-2-actions.html
所以,学技术必须看官方文档,二手知识要不得!
所以,学技术必须看官方文档,二手知识要不得!
                
            
        
浙公网安备 33010602011771号