支柱1-如何显示ActionMessages
题
我显示 ActionMessage
s过 JSP
文件通过以下命令:
<logic:messagesPresent message="true">
<ul id="messsages">
<html:messages id="msg" message="true">
<li><bean:write name="msg"/> </li>
</html:messages>
</ul>
</logic:messagesPresent>
现在我想只显示选择的信息。我怎么可以表明其消息显示?
更新
实际上我有两个 ActionMessages
对象 messages
和 warnings
.现在我要显示他们都在独立的 JSP
页面...一页显示 messages
和另一对 warnings
.
因此,如何指示的 JSP
页面,信息显示?
更新-2
现在,我发现一个奇怪的事情。
saveMessages(request, messages);
saveMessages(request, warnings);
当我写了上述代码,只有 warnings
是的工作。当我反了上述两种报表,则只 messages
是的工作。
看来我们可以添加的只有一个 ActionMessages
象在请求。如果它是正确的,那么如何消息显示在两个 ActionMessages
对象分开。
解决方案
简单,
分开你的 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
.在支柱行动,要求标记和检查,如果所选择的用户观看的消息或警告。然后你保存 warnings
或 messages
根据用户选择和显示同一页上(因为你上面写的),以显示信息。
其原因是此,支柱(当储存,你的消息或错误的)存储,它要求或届会议与下列恒定的。
- Globals.MESSAGE_KEY(分配时你做的
saveMessages(request, messages)
) - Globals.ERROR_KEY(分配时你做的
saveErrors(request, errors)
)
当使用 <logic:messagesPresent message="true">
, ,支柱搜索 MESSAGE_KEY
(如果消息=true)或 ERROR_KEY
(如果消息=false)或两者(如果消息=none)。你有没有控制。
<html:messages />
顶级域名的意见指出:
通过默认的标签将检索 豆,它将循环从 Globals.ERROR_KEY不断串,
但是,如果这属性设定为'true' 豆将会从中检索 Globals.MESSAGE_KEY不断串。此外,如果这个是设定为'真正的'任何 值分配给该名称属性 将会被忽略。
你也可以写脚本到检查,如果那些钥匙是存在的,然后 <logic:iterate />
通过关键显示的消息(但这将太多的工作)。
希望这会有所帮助。
其他提示
除了使用在message
和messagesPresent
标签messages
属性,你可以使用name
属性的ActionMessages对象,你必须在页面,请求,会话或应用范围指定名称。