JSPページからActionクラスの属性を変更しようとすると、たとえばフォームで変更できますが、Actionクラスで宣言されたオブジェクトの属性を変更しようとすると、変更できません。
モデルクラス:
public class User {
private String name;
public User(){
this.setName("Unknown");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
アクションクラス:
public class UserAction{
private User user;
public String execute(){
user = new User();
}
public User getUser(){
return user;
}
public void setUser( User user ){
this.user = user;
}
}
Userクラスは、コンストラクターのdefautによって属性に値を設定し、それにアクセスできます。
<s:property value="user.name" />
しかし、フォームを介してそれを変更し、フォームの後にターゲットページにその値を印刷しようとすると、デフォルト値が得られます。
<s:form action="welcomeAction" >
<s:textfield name="user.name" label="User name " />
</s:form>
前もって感謝します :)