単純、
messages
あなたとあなたのを分離してくださいwarnings
:あなたのストラットアクションで、あなたのメッセージと警告を次のように保存してください:
//For messages
saveMessages(request, messages);
//For warnings
saveErrors(request, warnings);
それらを表示するには:
<logic:messagesPresent message="true">
<html:messages id="aMsg" message="true">
<logic:present name="aMsg">
<!-- Messages -->
<div class="messages">
<bean:write name="aMsg" filter="false" />
</div>
</logic:present>
</html:messages>
</logic:messagesPresent>
<logic:messagesPresent message="false">
<html:messages id="aMsg" message="false">
<logic:present name="aMsg">
<!-- Warnings-->
<div class="warnings">
<bean:write name="aMsg" filter="false" />
</div>
</logic:present>
</html:messages>
</logic:messagesPresent>
これにより、すべてが表示されますmessages
(設定によるmessage="true"
)
<html:messages id="aMsg" message="true">
これにより、すべてが表示されますwarnings
(設定によるmessage="false"
)
<html:messages id="aMsg" message="false">
更新あなたが今あなたの質問をクリアしているのを見て、最も簡単な方法はこれをすることでしょう。
messages
ユーザーが表示するかどうかを示す特定のフラグを設定しますwarnings
。Strutsアクションで、フラグを要求し、ユーザーがメッセージまたは警告の表示を選択したかどうかを確認します。次に、ユーザーの選択に基づいて保存し、同じページを表示して(上記で記述したように)メッセージを表示しwarnings
ます。messages
その理由は、Struts(メッセージまたはエラーを保存する場合)は、要求またはセッションで次の定数を使用して保存するためです。
- Globals.MESSAGE_KEY(実行時に割り当てられます
saveMessages(request, messages)
)
- Globals.ERROR_KEY(実行時に割り当てられます
saveErrors(request, errors)
)
を使用する場合<logic:messagesPresent message="true">
、StrutsはMESSAGE_KEY
(message = trueの場合)またはERROR_KEY
(message = falseの場合)、あるいはその両方(message = noneの場合)を検索します。あなたはそれをコントロールすることはできません。
<html:messages />
TLDコメントは次のように述べています。
デフォルトでは、タグはGlobals.ERROR_KEY定数文字列から反復処理するBeanを取得します
が、この属性が「true」に設定されている場合、BeanはGlobals.MESSAGE_KEY定数文字列から取得されます。また、これが「true」に設定されている場合、name属性に割り当てられた値はすべて無視されます。
スクリプトレットを作成してそれらのキーが存在するかどうかを確認し<logic:iterate />
てから、キーを使用してメッセージを表示することもできます(ただし、これは大変な作業になります)。
お役に立てれば。