「querySaveDocumentイベント」なんてことをいってるということは、フォームのquerySaveDocumentイベントに保存時のコード書いてるのかな?
あれほどシンプルアクションなんか使うなと忠告したのに。
シンプルアクションなんてなんの応用もきかないから、今回のようなエラーメッセージを出したいみたいなちょっと変わったことをやろうとするとうまくいかない。本質的な理解を妨げるしね。
保存ボタンのイベントハンドラにチェック処理を書いて、そこに@ErrorMessage()を書くんですよ。チェック不正の時はdocument1.save()を呼ばなければ保存されない。
あと@ErrorMessage()には<xp:message>のIDを指定します。
保存ボタンの部分更新対象に<xp:message>を含む要素のIDを指定するか、「すべて更新」を指定するのも忘れずに。@ErrorMessaage()でせっかく内容を書き換えても、更新されないと意味ないので。
あと、<xp:message>を使うとそれっぽいスタイルを指定してくれるだけなんで、エラーメッセージをviewScopeにいれといて、<xp:label>をrenderedでエラーメッセージの表示/非表示を切り替えてるのと本質的には変わりません(たぶん)。
/Yac