WebWork2.2 のContinuations
Struts 2.0のベースになるWebWork 2.2にはRIFEを使用した、Continuationsという面白い試みがある。リンク先にサンプルがあるのだけど、
public String execute() throws Exception {
int answer = new Random().nextInt(100) + 1;
int tries = 5;
while (answer != guess && tries > 0) {
pause(Action.SUCCESS);
if (guess > answer) {
addFieldError("guess", "Too high!");
} else if (guess < answer) {
addFieldError("guess", "Too low!");
}
tries--;
}
...
public void setGuess(int guess) {
this.guess = guess;
}
このpause()のところで、クライアントに制御が返って、クライアントからリクエストが来て、guessが設定される、という動作がはさまる。つまりWebアプリを、普通のCUIなスタンドアロンアプリケーションみたいに書ける。これはアプリによっては、かなり簡単に書けるようになる気がするね。








