struts消息处理

来源:互联网 发布:csgo弹道优化参数存放 编辑:程序博客网 时间:2024/05/23 01:15
1、消息处理,就是在Action和JSP之间传递的消息文本的处理(区别于JSP页面硬编码文本的消息,JSP页面消息可以使用<bean:message/>标签来处理)Struts交互消息,是通过ActionMessages等对象,以及相应的<html:messages/>标签来处理的;

2、如何创建消息对象?
ActionMessages与ActionMessage对象
ActionMessages对象是ActionMessage对象的集合
一个ActionMessage对象,代表一个国际化消息文本(字符串)
如何创建ActionMessages对象?
ActionMessagesmessages = new ActionMessages();
如何创建ActionMessage对象?
ActionMessagemsg = new ActionMessage(“key”);
其构造方法带的参数,就是一个在资源属性文件中的key,所以,它能表示一个国际化消息文本
如何将ActionMessage对象添加到ActionMessages对象中?
messages.add(“message_id”,msg);
第一个参数(message_id)表示本ActionMessage对象在ActionMessages对象中区别于其它ActionMessage对象的标识符;

3、如何将消息对象从Action中传递到下一个页面(JSP)?
通过一句简单的代码,将ActionMessages对象保存到HttpServletRequest对象中
保存普通消息:this.saveMessages(request,messages);
保存错误消息:this.saveErrors(request,messages);
这就是调用父类(Action)所提供的方法saveMessages()/saveErrors()来保存消息对象
实际上,父类的saveMessages()方法,将消息对象保存在了request中,并命名为Globals.MESSAGE_KEY
saveErrors()方法,将消息对象保存在了request中,并命名为Globals.ERROR_KEY

4、如何在JSP中使用消息对象?

使用<html:messages/>标签来显示消息
<html:messages/>标签既可以显示普通消息,也可以显示错误消息
<html:messages/>标签的重要属性:
name – 消息对象的名称,如果我们调用saveMessages/saveErrors方法来传递消息,那么这个名字不需要标识(struts使用缺省的名称,即Globals.MESSAGE_KEY或Globals.ERROR_KEY)
id – (这是必需的属性)因为我们传递的是ActionMessages对象,而不是ActionMessage对象,ActionMessages对象相当于一个集合,我们需要在JSP上依次输出它所包含的消息,因此需要一个id标识一个变量来临时存放其每条消息(与<logic:iterate/>标签的id属性的意义是一样的)
property – 我们传递的ActionMessages对象,包含了多条消息文本,如果我们只需要显示其中一条,则可以通过property属性来指定显示哪条消息
message – 可以取值为true或false,如果取值为true,将显示普通消息,如果取值为false,将显示错误消息

5、<html:errors/>标签
<html:errors/>标签只显示错误消息
<html:errors/>标签与<html:messages/>标签类似,但无id属性
<html:errors/>标签通过提供header/footer属性以及prefix/suffix属性来定制每条消息的显示格式
header/footer – 定义整个错误消息显示之前(之后)要显示的内容,这些内容也是在资源属性文件中定义的一些key值,默认的情况下,它们的取值分别为:errors.header和errors.footer
prefix/suffix – 定义每条错误消息显示之前(之后)要显示的内容,这些内容也是在资源属性文件中定义的一些key值,默认的情况下,它们的取值分别为:errors.prefix和errors.suffix
举例如下:

errors.header=<UL>

errors.prefix=<LI>

errors.suffix=</LI>

errors.footer=</UL>


0 0
原创粉丝点击