管理Beanクラスの作成
続いて、管理Beanクラスを作成しましょう。ここでは、「Page1Bean.java」というソースコードファイルに記述をします。
package jp.allabout;
import javax.faces.component.html.*;
public class Page1Bean {
private HtmlOutputText text1;
private HtmlInputText field1;
private HtmlCommandButton button1;
public HtmlOutputText getText1() {
return text1;
}
public void setText1(HtmlOutputText text1) {
this.text1 = text1;
}
public HtmlInputText getField1() {
return field1;
}
public void setField1(HtmlInputText field1) {
this.field1 = field1;
}
public HtmlCommandButton getButton1() {
return button1;
}
public void setButton1(HtmlCommandButton button1) {
this.button1 = button1;
}
public String button1_action(){
text1.setValue("こんにちは、" + field1.getValue() + "さん!");
return null;
}
}
見ればわかるように、管理Beanクラスは、何の変哲もないObject継承クラスです。サーブレットのように、特別に用意されているクラスを継承して作ったりするわけではありません。
ここでは、JSPに用意されているタグに関連付けされるフィールドが3つ用意されています。それぞれ、HtmlOutputText、HtmlInputText、HtmlCommandButtonというクラスのフィールドになっていますね。これらが、それぞれ<h:outputText>、<h:inputText>、<h:commandButton>タグにbindingで関連付けられるフィールドになります。関連付けは、このようにそれぞれのタグに対応する専用のクラスを使ってフィールドを用意します。
それぞれのフィールドには、そのフィールドにアクセスするためのアクセサ(Setter/Getter)メソッドが用意されています。これがないと値を読み書きできないので注意しましょう。
アクセサ以外に、もう1つメソッドがありますね。button1_actionというメソッドです。これは、<h:commandButton>タグのactionに関連付けたメソッドです。ここでは、field1の「getValue」というもので関連付けられたタグのvalue値を取り出し、それを利用してtexgt1の「setValue」で関連付けられたタグのvalueに値を設定しています。関連付けの基本は、このgetValue/setValueメソッドで、関連付けたタグのvalue値を読み書きする、というものになるでしょう。とりあえずこれだけで、送信された値を取り出して表示する、といったことが行えるようになります。