2009-04-02 10 views
3

actionErrors.add(key、new Actionmessage( "string"))、addErrors(request、actionErrors);を実行してStrutsでエラーを表示することができました。Strutsで成功メッセージを表示するには?

Strutsで成功メッセージを出力するにはどうすればいいですか?どのように通常どおりやっていますか?

答えて

1

Struts2を使用している場合、addActionErrorの代わりにaddActionMessageを使用できるはずです。

http://struts.apache.org/2.0.14/struts2-core/apidocs/com/opensymphony/xwork2/ValidationAwareSupport.html

あなたの投稿は、あなたのJSPに入れていたもの失われていますが、アクションメッセージを追加した場合、あなたは追加内容を表示する<s:actionmessage/>タグを使用することができます。 Strutsの1オン

http://struts.apache.org/2.0.14/docs/actionmessage.html

10

あなたはJSP

ActionMessages messages = new ActionMessages(); 
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message1"); 
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message2"); 
saveMessages(request, messages); // storing messages as request attributes 

に表示されるメッセージを表現するためにActionMessageのインスタンスを使用することができ、「メッセージ1」と「メッセージ2は、」あなたのリソースプロパティファイルのキーです。たActionErrorは、JSP上のメッセージを表示する

の取り扱いに非常によく似たアクションエラーに似ていますが、プロパティ「メッセージ」この例では

<logic:messagesPresent message="true"> 
    <html:messages id="message" message="true"> 
    <bean:write name="message"/><br/> 
    </html:messages> 
</logic:messagesPresent> 

を含まなければならないメッセージは、属性要求として格納されていました。あなたは、属性名の上にコントロールを持っているしたい場合は、

ActionMessages messages = new ActionMessages(); 
messages.add("appMessage", new ActionMessage("message1"); 
saveMessages(request, messages); // storing messages as request attributes 

任意の属性名を指定することができます今すぐメッセージが要求属性「appMessage」の下に格納されています。 JSPでStrutsタグの代わりにJSTLタグを使用する場合は、カスタム属性名を設定すると便利です。

さらに、セッションスコープにアクションメッセージを保存することができます。

saveMessages(request.getSession(), messages); // storing messages as request attributes 

この機能を使用すると、ユーザーのフルネームなど、ユーザーセッションでスティッキーなメッセージを表示できます。

+0

セッションにメッセージを保存する最後の例では、Struts 1.2.x以上が必要です。 – Jawa

+1

これはすべての正しい情報ではありません。 ActionMessagesオブジェクトだけがリクエストにBeanを格納します。 ActionMessageオブジェクトはそうではありません。あなたはActionMessagesのプロパティを使ってそれらにアクセスする必要があります。したがって、messages.add(appMessage、...)を使用しても、appMessageはリクエスト属性として追加されません。JSP内ではなどのようにアクセスできません。 – KyleM

関連する問題