Java Struts 1-如何显示ActionMessages
我通过以下命令通过Java Struts 1-如何显示ActionMessages,java,struts,struts-1,Java,Struts,Struts 1,我通过以下命令通过JSP文件显示ActionMessages: <logic:messagesPresent message="true"> <ul id="messsages"> <html:messages id="msg" message="true"> <li><bean:write name="m
JSP
文件显示ActionMessage
s:
<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
对象。如果正确,那么如何在两个ActionMessages
对象中分别显示消息。您可以使用messagesPresent
和messages
标记上的message
属性来指定您在页面、请求和,会话或应用范围。简单
将消息
和警告分开:在struts操作中,按如下方式保存消息和警告:
//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>
这将显示所有警告(通过设置message=“false”
)
更新看到您现在正在澄清您的问题,最简单的方法就是这样做
有一个特定的标志,指示用户是否要查看消息
或警告
。在Struts操作中,请求标志并检查用户是否选择查看消息或警告。
然后,根据用户选择保存警告
或消息
,并显示相同的页面(如上所述)以显示消息
原因是,Struts(在存储消息或错误时)在请求或会话时使用以下常量存储它
- Globals.MESSAGE_键(在执行
保存消息(请求,消息)
时指定)
- Globals.ERROR\u键(在执行
保存错误(请求,错误)
时指定)
当使用
时,Struts搜索消息键(如果消息为true)或错误键(如果消息为false)或两者(如果消息为none)。你无法控制
TLD注释说明:
默认情况下,标记将检索
它将从
Globals.ERROR\u键常量字符串,
但如果此属性设置为“true”
该bean将从
Globals.MESSAGE_键常量字符串。
此外,如果设置为“真”,则任何
指定给“名称”属性的值
将被忽略
您还可以编写scriptlet来检查这些键是否存在,然后通过键显示消息(但这将是太多的工作)
希望这有帮助。我也可以从ActionMessages对象中选择特定消息吗?您可以使用属性
属性按属性选择特定消息。除此之外,我认为您必须自己迭代ActionMessages。Globals.XXX_键常量在请求或会话时存储一次。因此,你觉得你的方法很奇怪。
<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>
<html:messages id="aMsg" message="true">
<html:messages id="aMsg" message="false">