Struts
★注意点
Struts 1.xの場合、Actionインスタンス(サブクラスも含む)には、マルチスレッド間で共用されるため、定数以外のフィールド(インスタンス変数・メンバ変数)を書かないようにする。
Struts 2.xの場合、リクエストごとにActionインスタンス(サブクラスも含む)が生成される。そのほか、画面入力値もActionクラスのフィールドに持たせる。
ちなみに、
Servletは一つのインスタンスが複数のスレッドで共用されるため、Servletクラス(サブクラスも含む)にフィールドを書かないようにする。
★Struts2.xについて
<form action="login.do" name="LoginForm" method="POST">
Username:<input type="text" name="name"><br>
Password:<input type="password" name="pass"><br>
<input type="submit" value="Submit">
</form>
Attribute Driven
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String name;
private String pass;
// getter/setter
@Override
public String execute() throws Exception {
return ActionSupport.SUCCESS;
}
}
Model Driven
Struts 1.x(ActionとActionFormが一対一)のActionFormと似ている
public class User {
private String name;
private String pass;
// getter/setter
}
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport implements ModelDriven<User> {
private User user;
// getter/setter
@Override
public String execute() throws Exception {
return ActionSupport.SUCCESS;
}
public User getModel() {
return user;
}
}