Action的传值方式

1.字段驱动方式
所谓字段驱动方式就是通过字段进行数据传递。在Struts2中我们可以直接在Action里定义各种Java基本类型的字段,使这些字段与表单数据相对应,并利用这些字段进行数据传递。

UserAction.java

public class UserAction {
  private  String name;
  private String password;
  public String getUsername() {
      return username; }     
   public void setUsername( String username) {
         this.username = username;     }      
   public String getPassword() {   
          return password;     }     
    public void setPassword(String password) {    
    this.password = password; }
}

   public String execute() throws Exception {
       ……  
  }
}
这个Action中的定义了两个字符串字段"username”和"password”,这两个字段分别对应登陆页面上的“用户名”和“密码”两个表单域。



2、模型驱动方式
所谓模型驱动方式是指通过JavaBean模型进行数据传递。采用这种方式,JavaBean所封装的属性与表单的属性一一对应,JavaBean将成为数据传递的载体。使用模型驱动方式,Action类通过get*()的方法来获取模型,其中“*”代表具体的模型对象。
首先,我们创建一个模型:

user.java
 
public class User {
    private String username;
    private String password; 
    public String getUsername() {
         return username;    
    }     
    public void setUsername(String username){   
     this.username = username;  
    }      
    public String getPassword() {     
         return password;    
    }        
    public void setPassword(String password){ 
       this.password = password;  
  }
}


接下来定义Action类,两个字段已经不再单独定义,而是定义一个User类型的域模型:

UserAction.java
import xxxx.User;
  public class User2Action { 
    private User user;      
    public User getUser() {      
       return user;     }     
     public void setUser(User user){ 
       this.user = user;     }  
     public String execute() throws Exception{
      if(user.getUsername().equals("wwfy")
          &&user.getPassword().equals("123456")){  
          return "success";       
          }       
           else{         
          return "error";     
   }  
  }
}


在使用模型驱动传值的时候需要注意,如果JSP页面是负责取值的,那么取值的格式必须为“ 模型对象名.属性名”;如果JSP页面是负责传值的,那么传值的格式可以为“模型对象名.属性名”,也可以直接是“属性名”。

接下来对登陆页和成功页进行改动:

login2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> 
<head><title>登陆页面</title></head> 
<body>
<center> <s:form action="loginUser2"><s:textfield name="user.username" label="用户名"></s:textfield>                 <s:password name=" user.password" label="密码"></s:password>
<s:submit value="确定"/>
<s:reset value="重置"/>
</s:form>
</center> 
</body>
</html>


struts.xml

<action name="loginUser2" class="wwfy.action.user.User2Action">     <result name="success">/jsp/success2.jsp</result>     <result name="error">/jsp/error.jsp</result> </action>

这样就完成了模型驱动传值.

你可能感兴趣的:(Action的传值方式)