在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号