S2JSFを使ってみる(1)

■足し算を行なうプログラム
○add.html





Add



<input type="text" m:value="#{addDto.arg1}"/> +
<input type="text" m:value="#{addDto.arg2}"/> =

<input type="submit" value="calculate" m:action="#{addAction.calculate}"/>

足し算用フォーム
calculateボタンをクリックしたら、addActionで登録されているオブジェクトの
calculateメソッドが呼ばれる。
ボタンを押した時に呼ばれるアクションクラス等の設定が不要。

○AddActionインタフェース


package sample.action;

public interface AddAction {
public String calculate();
}

○AddActionImplクラス


package sample.action.impl;

import sample.action.AddAction;
import sample.dto.AddDto;
import sample.logic.AddLogic;

public class AddActionImpl implements AddAction{

private AddDto addDto;
public void setAddDto(AddDto addDto) {
this.addDto = addDto;
}

private AddLogic addLogic;
public void setAddLogic(AddLogic addLogic) {
this.addLogic = addLogic;
}

public String calculate() {
int result = addLogic.calclate(addDto);
addDto.setResult(result);
return null;
}

}

AddDtoとAddLogicはDIコンテナが勝手に取得してくれる。caluculate()メソッドは
caluculateボタンが押されたら呼ばれるメソッド。計算結果をaddDtoのresultプロパティに
セットするだけ。Pointはnullをreturnすると、呼び出したページに戻ること。
これは知ってないとわからない・・・

○AddDtoクラス


package sample.dto;

import java.io.Serializable;

public class AddDto implements Serializable {
private int arg1;

private int arg2;

private int result;

public int getArg1() {
return arg1;
}

public void setArg1(int arg1) {
this.arg1 = arg1;
}

public int getArg2() {
return arg2;
}

public void setArg2(int arg2) {
this.arg2 = arg2;
}

public int getResult() {
return result;
}

public void setResult(int result) {
this.result = result;
}
}

入力したものが勝手にセットされるDto。diconファイルにname属性を
付けて登録するだけで、勝手にセットされるようになる。便利!

○AddLogicインタフェース


package sample.logic;

import sample.dto.AddDto;

public interface AddLogic {
public int calclate(AddDto dto);
}

○AddLogicImplクラス


package sample.logic.impl;

import sample.dto.AddDto;
import sample.logic.AddLogic;

public class AddLogicImpl implements AddLogic{
public int calclate(AddDto dto){
return dto.getArg1() + dto.getArg2();
}
}

Logicクラス。これもdiconファイルに登録するだけで勝手にActionクラスのセッターが
呼ばれセットしてくれるみたい。

○add.dicon







唯一の設定ファイル。name属性をつけているものは、HTML上で使用される。

■足し算を行なうプログラム
○add.html





Add



<input type="text" m:value="#{addDto.arg1}"/> +
<input type="text" m:value="#{addDto.arg2}"/> =

<input type="submit" value="calculate" m:action="#{addAction.calculate}"/>

足し算用フォーム
calculateボタンをクリックしたら、addActionで登録されているオブジェクトの
calculateメソッドが呼ばれる。
ボタンを押した時に呼ばれるアクションクラス等の設定が不要。

○AddActionインタフェース


package sample.action;

public interface AddAction {
public String calculate();
}

○AddActionImplクラス


package sample.action.impl;

import sample.action.AddAction;
import sample.dto.AddDto;
import sample.logic.AddLogic;

public class AddActionImpl implements AddAction{

private AddDto addDto;
public void setAddDto(AddDto addDto) {
this.addDto = addDto;
}

private AddLogic addLogic;
public void setAddLogic(AddLogic addLogic) {
this.addLogic = addLogic;
}

public String calculate() {
int result = addLogic.calclate(addDto);
addDto.setResult(result);
return null;
}

}

AddDtoとAddLogicはDIコンテナが勝手に取得してくれる。caluculate()メソッドは
caluculateボタンが押されたら呼ばれるメソッド。計算結果をaddDtoのresultプロパティに
セットするだけ。Pointはnullをreturnすると、呼び出したページに戻ること。
これは知ってないとわからない・・・

○AddDtoクラス


package sample.dto;

import java.io.Serializable;

public class AddDto implements Serializable {
private int arg1;

private int arg2;

private int result;

public int getArg1() {
return arg1;
}

public void setArg1(int arg1) {
this.arg1 = arg1;
}

public int getArg2() {
return arg2;
}

public void setArg2(int arg2) {
this.arg2 = arg2;
}

public int getResult() {
return result;
}

public void setResult(int result) {
this.result = result;
}
}

入力したものが勝手にセットされるDto。diconファイルにname属性を
付けて登録するだけで、勝手にセットされるようになる。便利!

○AddLogicインタフェース


package sample.logic;

import sample.dto.AddDto;

public interface AddLogic {
public int calclate(AddDto dto);
}

○AddLogicImplクラス


package sample.logic.impl;

import sample.dto.AddDto;
import sample.logic.AddLogic;

public class AddLogicImpl implements AddLogic{
public int calclate(AddDto dto){
return dto.getArg1() + dto.getArg2();
}
}

Logicクラス。これもdiconファイルに登録するだけで勝手にActionクラスのセッターが
呼ばれセットしてくれるみたい。

○add.dicon







唯一の設定ファイル。name属性をつけているものは、HTML上で使用される。