struts 2モデル駆動について

2350 ワード

モデル駆動に対応するのは属性駆動で、名前はすごいですが、実はよく理解しています.プロパティドライバとは、Actionでフォームに対応するプロパティを定義し、プロパティのget/setメソッドを定義します.モデル駆動は,フォームから渡されたデータを1つのオブジェクトにカプセル化してActionに渡すモデル,すなわちModelを事前に定義しておき,これはStruts 1のこのメカニズムとよく似ている.では、この2つの方法は、どちらがいいのでしょうか.まだ実践しなければならない検証があります...
ここでは、ログインの例を使用してモデルドライバを分析します.プロパティドライバは分析されません.
1、まずModel、すなわちUserクラスを創立する: 
package com.suo.beans; 
  
import java.util.Date; 
  
public class User 
{  
    private String username; 
    private String password; 
    private EMail email;//  EMail        ,         
 private Date birthday; 
      
    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 EMail getEmail() { 
        return email; 
    }  
    public void setEmail(EMail email) { 
        this.email = email; 
    }  
    public Date getBirthday() { 
        return birthday; 
    }  
    public void setBirthday(Date birthday) { 
        this.birthday = birthday; 
    }  
}

2、LoginActionクラスを確立し、ActionSupportから継承し、ModelDrivenインタフェースを実現する.このインタフェースはgetModel()メソッドを定義し、定義したModelを返し、setメソッドを呼び出して値を割り当てる.
package com.suo.actions; 
  
import com.opensymphony.xwork2.ActionSupport; 
import com.opensymphony.xwork2.ModelDriven; 
import com.suo.beans.User; 
import com.suo.services.LoginService; 
import com.suo.services.LoginServiceImpl; 
  
public class LoginAction3 extends ActionSupport implements ModelDriven<User> { 
      
    private User user=new User();//          
 private LoginService loginService=new LoginServiceImpl();//                
 
    @Override  
    public User getModel() { 
        // TODO Auto-generated method stub  
 return user; 
    }  
      
    public String execute() 
    {  
        System.out.println(user.getUsername());  
        System.out.println(user.getPassword());  
          
        if(loginService.isLogin(user.getUsername(), user.getPassword())) 
        {  
            return SUCCESS; 
        }  
        return INPUT; 
    }  
}

 
Struts 2では、Actionがservletの役割、すなわちControllerの役割を果たす.特定のビジネスロジックは、他のBeanを呼び出して実装します.