一首先从扩展关系上来看
在 struts 中 ActionMessage 类是 ActionError类的父类
ActionMessages类是ActionErrors类的父类
struts1.1中用ActionErrors报告错误,用ActionMessages提供信息。
在struts1.2中使用ActionMessages提供信息和错误,不赞成使用ActionError
struts1.3中已经没有ActionError类了。
二在页面上显示信息的时候分别对应于 struts标签中的<html:messages/><html:errors/>
关于这两个标签的使用:
html:errors指定了footer和header属性。默认值为errors.header和errors.footer,需要时可以自己指定。如果资源属性文件配置了 errors.header和errors.footer,则任何时候使用html:errors时开头和结尾都是这两个属性对应的资源信息。
html:message默认情况下没有errors.header和errors.footer值,当然可以自己指定。
html:errors可以根据property属性指定显示一个错误信息。html:messages有一个必添项id。html:messages不能直接显示信息,它将选出的信息放入一个用id标识的Iterator对象里,然后在用ben:write或JSTL c:out标签显示每个信息.例如:
<html:messages message="true" id="msg">
<c:out value="${msg}"/><br />
</html:messages>
还可以
<html:messages id="message" name="message1">
<bean:write name ="message">
</html:messages>
其中 name属性 用于指定vActionMessage存放于request对象中的key 不指定默认key值为GlobalsMESSAGE_KEY
其中的id属性 用于从ActionMessage对象中检索出的ActionMessage对象在上面的例子中 将取出的对象命名为"message" 以便bean:write标签使用。其作用相当于给ActionMessage起了个别名。
在action使用的时候 具体一小段代码示例:
ActionMessages messages = new ActionMessages();//初始化一个对象
message.add(ActionMessages.Golbal_Message,new ActionMessage("错误信息"));//加入一条message
saveErrors(request,messages);//将messages对象放入request中