在介绍ActionMessages前,我觉得有必要先介绍一下ActionMessages的数据结构.理解了其数据结构有助于理解相关的各种操作.
id | 必须指定id属性.<html:messages>标签作用是遍历ActionMessages对象中的所有 ActionMessage.类似<logic:iterator>,每次循环都定义一个名称为id指定的页面范围的bean,然后用 <bean:write>标签进行输出. |
bundle | 绑定一个MessageResources,不指定的时候从上下文中配置的资源中检索.一般不指定bundle属性. |
locale | 指定本地化信息,不指定时和Session的本地化信息相同,一般不用指定. |
name | 指定ActionMessages对象在request中的key.不指定时,默认用 GLOBALS.ERROR_KEY="org.apache.struts.action.ERROR",用Action.addMessages()方法添加的信息将不 被显示,用Action.addErrors()方法添加的信息才会被显示.一般不指定. |
property | 指定哪些ActionMessage将被显示,与ActionMessages.addMessage(String property,ActionMessage am)中的property参数相对应.不指定的时候显示所有信息. |
header | 指定一个资源信息key,在显示ActionMessages前打印到页面上,可选. |
footer | 指定一个资源信息key,在显示完ActionMessages后打印到页面上,可选. |
message | 取值为true/false,默认为false.为false或不指定时,在request中查找key=Globals.ERROR_KEY的ActionMessages bean.当该属性设置为true时,在request中查找key=Globals.MESSAGE_KEY的ActionMessages bean,同时name属性的值将被忽略. |
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);
<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 -->