4.6. CheckRequest、Nullable について
この章では、CheckRequest、Nullable の改良点について説明します。
CheckRequest の自動化
当バージョンより、ActionPage クラスが CheckRequest を自動的に実行するようになりました。
自動的に CheckRequest を行った結果、エラーが無い場合のみ 指定されたアクションメソッドが呼び出されます。
エラーが存在する場合は、以下のレスポンスが返されます。

ls.exec によるリクエストの場合

showWithAlert メソッドにより、全てのエラーメッセージを alert 表示するとともに画面再表示を行うレスポンスが返されます。

ls.ajax によるリクエストの場合

writeAjaxExceptionResponse により、全てのエラーメッセージを alert 表示する Ajax レスポンスが返されます。

以上の動作は ActionPage クラスの以下メソッドに実装されています。
protected void onDefaultCheckRequestError(String methodName,
    ArrayList<WebDataTable<?>> errorTableList)
※動作をカスタマイズする場合は、上記メソッドをオーバーライドしてください。
@Override
protected void onDefaultCheckRequestError(String methodName,
    ArrayList<WebDataTable<?>> errorTableList) {
    messages = ""; //お知らせメッセージ初期化
    super.onDefaultCheckRequestError(methodName, errorTableList);
}

自動 CheckRequest の無効化

検索やリセット、画面クローズなど、自動 CheckRequest を実施せず、個別な実装を行う場合は、アクションメソッドに以下のアノテーションを指定してください。
@DefaultCheckReqest(isEnable=false)
public void searchEmpList() throws Exception {
    if (tableX.checkRequest...
        //個別のチェックリクエストと処理
}

アラートによるメッセージ表示 有・無 の設定

アラートによるメッセージ表示を行わない場合は、アクションメソッドに以下のアノテーションを指定します。
@DefaultCheckReqest(isShowAlert=false)
public void searchEmpList() throws Exception {
    :
}
※ この設定は Ajax リクエストには作用しません。

アクションページ全体にオプションの設定を行う

上記のオプションの設定は、ActionPage クラスにアノテーションを指定することで全てのメソッドに適用されます。
// 自動 checkRequest を無効化します
@DefaultCheckReqest(isEnabled=false)
public class EmpPage extends SQLActionPage {

または

// アラートによるメッセージを非表示にします
@DefaultCheckReqest(isShowAlert=false)
public class EmpPage extends SQLActionPage {
※全体設定を行った上で、メソッド毎に個別設定を行うことも可能です。
Nullable 設定タイミングについて
旧バージョンでは、先にカラムオブジェクトの nullable を設定しても、activate のタイミングでデータベースの NOT NULL 制約が上書きされていました。
当バージョンでは、先に明示的な nullable 設定が行われている場合、そちらがが優先されます。
$column(tableEmp.$$.id).setNullable(true);
または
tableEmp.getColumn("empId").setNullable(true);
    :
tableDept.activate(conn);