Cubby1.1-rc2をリリースしました。

http://cubby.seasar.org/download.html

今回、RedirectやSendErrorの便利機能が追加されました。
例えば、以下のようにしてURLにパラメータを埋め込んでリダイレクトすることができます。

public class BlogAction {
  @Path("/{userName,a-z}/entries/")
  public ActionResult showUserEntry() {
    ...
  }
}

public class LoginAction {
  public ActionResult process() {
    ...
    // /{userName}/entriesへリダイレクト
    return new Redirect(BlogAction.class, "showUserEntry")
      .param("userName", userName);
  }
}

存在しないリソースにアクセスされたときに404を返したいときは、以下のように書くことができます。SendErrorの代わりにRedirectを指定することで別のページ遷移させることもできます。

public ValidationRules validationRules = new DefaultValidationRules() {
  @Override
  protected void initialize() {
    add(DATA_CONSTRAINT, new ExistAccountValidationRule());
  }
};

protected class ExistAccountValidationRule implements ValidationRule {
  public void apply(Map<String, Object[]> params, Object form,
    ActionErrors errors) throws ValidationException {
    if (account == null) {
      throw new ValidationException(new SendError(SC_NOT_FOUND));
    }
  }
}