刚开始学习struts2 看到modeldriven部分 在网上看到有关讨论
下面两种方式实质都是在使用modeldrivenpublic class LoginAction4 implements ModelDriven<User>{
private User user = new User();
public User getModel() {
return user;
} public String execute() {
if(user.getUsername().trim().equalsIgnoreCase("zahir") && user.getPassword().equals("3859669")){
return "success";
}
return "error";
}
}public class LoginAction4 {
private User user = new User();
public User getModel() {
return user;
} public String execute() {
if(user.getUsername().trim().equalsIgnoreCase("zahir")
&& user.getPassword().equals("3859669")){
return "success";
}
return "error";
}
}
不同的是实现了ModelDriven接口的Action
中的Model会被压入到值栈中 public String intercept(ActionInvocation invocation) throws Exception {
Object action = invocation.getAction(); if (action instanceof ModelDriven) {
ModelDriven modelDriven = (ModelDriven) action;
ValueStack stack = invocation.getStack();
if (modelDriven.getModel() != null) {
stack.push(modelDriven.getModel());
}
}
return invocation.invoke();
}
也确实将我的user压入值栈了
但在我的jsp中用debug却只能看到
Value Stack Contents
Object Property Name Property Value
zahir.logon.actions.LoginAction2 :
username zahir
password 3859669 com.opensymphony.xwork2.DefaultTextProvider: texts null 和不实现ModelDriven接口方式得到的结果一模一样,为什么?
下面两种方式实质都是在使用modeldrivenpublic class LoginAction4 implements ModelDriven<User>{
private User user = new User();
public User getModel() {
return user;
} public String execute() {
if(user.getUsername().trim().equalsIgnoreCase("zahir") && user.getPassword().equals("3859669")){
return "success";
}
return "error";
}
}public class LoginAction4 {
private User user = new User();
public User getModel() {
return user;
} public String execute() {
if(user.getUsername().trim().equalsIgnoreCase("zahir")
&& user.getPassword().equals("3859669")){
return "success";
}
return "error";
}
}
不同的是实现了ModelDriven接口的Action
中的Model会被压入到值栈中 public String intercept(ActionInvocation invocation) throws Exception {
Object action = invocation.getAction(); if (action instanceof ModelDriven) {
ModelDriven modelDriven = (ModelDriven) action;
ValueStack stack = invocation.getStack();
if (modelDriven.getModel() != null) {
stack.push(modelDriven.getModel());
}
}
return invocation.invoke();
}
也确实将我的user压入值栈了
但在我的jsp中用debug却只能看到
Value Stack Contents
Object Property Name Property Value
zahir.logon.actions.LoginAction2 :
username zahir
password 3859669 com.opensymphony.xwork2.DefaultTextProvider: texts null 和不实现ModelDriven接口方式得到的结果一模一样,为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货