深入探讨struts的ActionMessages消息机制
2007-11-22 10:23:01
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://leaze.blog.51cto.com/83088/51750
| ||||||||||||||||
在介绍ActionMessages前,我觉得有必要先介绍一下ActionMessages的数据结构.理解了其数据结构有助于理解相关的各种操作.
ActionMessages以一个HashMap存储ActionMessage.Map中的key是一个标识,其对应的value是一个List对象,所有的ActionMessage存储在List中.也就是说key标识了一组ActionMessage.
先介绍涉及到的类中的几个常用方法,然后给出几个示例代码,帮助理解.
在request中添加的ActionMessages在页面显示时,用<html:messages>标签进行显示,下面介绍一下该标签和经常配套使用的<logic:messagePresent>标签.
<html:messages>
<logic:messagesPresent>和<logic:messagesNotPresent>标签,只支持message,name,property3个属性,作用和<html:messages>相同,就不再介绍
下面给出一段代码,帮助大家理解,这里只写了关键代码.
1. Action 类中的部分代码:
ActionMessages ams =
new ActionMessages();
ams.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(
"addMessages : global message",
false));
ams.add( "error", new ActionMessage( "addMessages : error message", false)); ams.add( "info", new ActionMessage( "addMessages : info message", false)); this.addMessages(httpServletRequest,ams); ActionMessages errorMessage = new ActionMessages(); errorMessages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(
"addErrors : global message",
false));
errorMessages.add( "error",
new ActionMessage(
"addErrors : error message",
false));
errorMessages.add( "info", new ActionMessage( "addErrors : info message", false)); this.addErrors(httpServletRequest,errorMessages); 2. JSP文件中的部分代码: < html:messages id ="message" > < bean:write name ="message" /> < br /> </html:messages> <!-- 上面代码的输出结果: addErrors : global message addErrors : error message addErrors : info message --> < html:messages id ="message" property ="info" > < bean:write name ="message" />
<br />
</html:messages> <!-- 这段代码的输出结果为: addErrors : info message --> < html:messages id ="message" message ="true" > < bean:write name ="message" />
<br />
</html:messages> <!-- 这段代码的输出结果: addMessages : global message addMessages : error message addMessages : info message --> < html:messages id ="message" message ="true" property ="info" > < bean:write name ="message" />
<br />
</html:messages> <!-- 这段代码的输出结果为: addMessages : info message -->
如果结合上<logic:messagesPresent>标签,将可以做出自由度很高的错误信息显示效果,具体如何表现这里就不在细说了.<logic:messagePresent>的使用方法大家自己体会,我相信大家掌握了<html:messages>,一定能驾驭<logic:messagesPresent>
对struts的ActionMessages的讨论就到这里,希望这篇文章能对广大刚接触struts的朋友们有所帮助.
|