3

struts2 検証を使用して設定した検証メッセージを取得するにはどうすればよいですか。

public void validate() {
    addFieldError("user", "Invalid User");
}

カスタムtagLibから「無効なユーザー」と「ユーザー」の文字列を取得して、次のように印刷したい:

public int doStartTag() {
    pageContext.getOut().print( "Invalid User - user" )
}

更新: この例は、値をどのように使用するかではなく、どのように返してほしいかを説明するだけの、縮小された非機能的な使用法でしたが、使用例は次のとおりです。

struts 検証からのエラーを出力するカスタム tagLib を作成したいと考えています。単一の tagLib で、ページに特定の入力の検証エラーが含まれているかどうかを確認し、エラーの内容を画面に出力します。

Scriptlet, <logic:*, javascript -> 全部論外です。

jsp がドキュメントの構造を保持することを意図している場合、内部固有の規則を備えた taglib は、論理比較でページをあふれさせるよりもはるかに理にかなっています。

デフォルトのテンプレートを「シンプル」に設定しても、削除できないand構造を作成するため、使用していません<s:fieldError />(またはそのようなものです)ulli

4

1 に答える 1

0

アレクサンドル M は正しいです。タグによって吐き出されるマークアップのみを変更したい場合は、タグを作成したくないことは間違いありません。それをレンダリングしているテンプレートをオーバーライドしたいだけです。これは非常に簡単です。テンプレートのコピーを struts コア jar から取得して編集し、プロジェクトに配置します。ドキュメントへのリンクは次のとおりです。

http://struts.apache.org/2.3.4.1/docs/template-loading.html

やりたいことによっては、自分でエラー メッセージを取得することもできます。これらはすべて ActionSupport の JavaBeans プロパティとして公開されており、アクションの継承元であり、property タグなどの OGNL 式でアクセスできます。

ActionSupport は、実装する ValidationAware インターフェースの契約を満たすためにこれらを実装することに注意してください。

于 2012-12-06T15:47:00.797 に答える