アクション受信要求パラメータ(3つの方法)

3835 ワード

Struts 2はMVCフレームとしてHTTP要求パラメータの解析を行い、Modelオブジェクトにカプセル化する必要があります。Struts 2は、modelオブジェクトへのデータのパッケージングを要求するための非常に強力なタイプの変換機構を提供する。
一、方式一
1)アクション自体がモデルの対象となり、メンバーsetterによってパッケージ化される。アクションクラスをモデルの対象とします。
public class userAction extends ActionSupport {
   private String username;
   private String password;
   public String regist()
 {
    if("pjm".equals(username) && "123".equals(password))
    {
       return SUCCESS;
    }else
    {
       return "login";
    }
 }
 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;
 }
}
2)独立したModelオブジェクトを作成し、ページはognlパッケージ(アクションクラスとモデル別、推奨使用)a.
public class Person implements Serializable{
 //    form         
 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;
 }
 @Override
 public String toString() {
  return "Person [username=" + username + ", password=" + password + "]";
 }
}
b.動作
public class PersonAction extends ActionSupport {
 //        
 private Person person;
 public Person getPerson() {
  System.out.println("getter");
  return person;
 }
 public void setPerson(Person person) {
  System.out.println("setter");
  this.person = person;
 }
 public String regist()
 {
  if("pjm".equals(person.getUsername()) && "123".equals(person.getPassword()))
  {
   return SUCCESS;
  }else
  {
   return "login";
  }
 }
}
c.プロファイル

  
   /success.jsp
   /success.jsp
  
 
d.フォームページ


3)modelDrivenインターフェースを使用して、要求データをカプセル化する(モデルドライバ:ModelDriven)注:この機能はmodelDrivenというブロックで完成します。a.モデルと方式が同じb.動作
//   ModelDriven  
public class CustomerAction extends ActionSupport implements ModelDriven{

 private Customer customer = new Customer();  //        
 public Customer getCustomer() {
  return customer;
 }
 public void setCustomer(Customer customer) {
  this.customer = customer;
 }
 public String regist()
 {
  System.out.println(customer);
  if("pjm".equals(customer.getUsername()) && "123".equals(customer.getPassword()))
  {
   return SUCCESS;
  }else
  {
   return "login";
  }
 }
 @Override
 public Customer getModel() {
  // TODO Auto-generated method stub
  return customer;
 }
}
c、プロファイル

  
   /success.jsp
   /success.jsp
  
 
d、フォームページ