サーバサイドでのバリデーション。

ActionFromのvalidateメソッドに実装。

チェックのロジック自体の実装は悩むことはないのだが、

エラーの返し方が1.2以前と1.3では若干変更されていた。

validateメソッド内の処理

1.2以前

public ActionErrors validate(ActionMapping mapping,
       HttpServletRequest request){
ActionErrors errors = new ActionErrors();

if (name.equals("")) {
errors.add("name", new ActionError("invalid.name"));
}

return errors;
}

1.3

public ActionErrors validate(ActionMapping mapping,
      HttpServletRequest request){

    ActionErrors errors = new ActionErrors();

if (name.equals("")) {
errors.add("name",

      new ActionMessage("invalid.name","name"));
}

    return errors;
}

ActionErrorsのaddメソッドの使用方法が変わった。

第二引数がActionErrorクラスからActionMessageに変更。

第一引数が、html上に出力させる際に対応させる

プロパティ名(項目名)

第二引数のActionMessageの第一引数がエラーメッセージ

プロパティのKey

第二引数のActionMessageの第二引数がエラーメッセージに

渡すパラメタ。

エラーメッセージのプロパティでは{0}等で複数設定できる。

エラーメッセージのプロパティ(MessageResources_ja.properties)

  (例) invalid.name=名前は必ず入力するようにして下さい。{0}

今回の初歩的なミスは、エラーが画面に表示されなかったこと。

これは、html:errorsのタグのprefixの設定をjspに忘れていたこと。

<%@ taglib uri="http://struts.apache.org/tags-html"
prefix="html" %>

サクラエディタにて空白またはタブを@等の任意も文字

に置換する正規化表現。

特別なものではないが、自分が正規化表現が苦手なので書き残す。

注意としては、連続している空白・タブは一つの置換対象とする

ようにしていること。 + がそれを実現している。

置換対象
( |\t)+
置換後
@

置換前

\t\t1
□2
\t3
\t□4
□□5

置換後

@1
@@2
@3
@@4
5

\t タブ
□ 空白


偶然発見してしまったので、書き残しておく。

Poderosa 入力支援で、Eclipseの入力アシスタントに似た感じです。

メニューバーのコンソール-文字入力でシェル補完を選択。

コマンド入力すると、履歴より過去に実行したコマンドの履歴から

選択可能。

入力した文字からはじまるコマンドが表示される。