`
ttitfly
  • 浏览: 616731 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts备忘(转)

阅读更多
=======<html:messages>============
Action 中 :
    ActionMessages message = new ActionMessages();
    message.add(" 消息句柄 ",new ActionMessage(" 资源文件中 Key 值 ",String 类型描述信息 ));
    this.addMessages(request,message);
    return ActionForward;
JSP 页面中 :
    <html:messages id=" 指定使用消息的标识 " property=" 消息句柄 " message="true|false">
       <bean:write name=" 以上所指 ID 标识 "/>
    </html:messages>

==========<html:errors>==============
Action 中 :
    ActionMessages message = new ActionMessages();
    message.add(" 消息句柄 ",new ActionMessage(" 资源文件中 Key 值 ",String 类型描述信息 ));
    this.saveErrors(request,message);
    return ActionForward;
JSP 页面中 :
    <html:errors property=" 消息句柄 "/>

如果Action中这样设定(false),页面的提示信息将不从资源文件里读取:
    ActionMessages message = new ActionMessages();
    message.add("消息句柄",new ActionMessage("String类型描述信息",false));
    this.saveErrors(request,message);
    return ActionForward;
JSP页面:
    <html:errors/>或<html:errors property="消息句柄"/>






<logic:messagesPresent>和<logic:messagesNotPresent>标签
<logic:messagePresent>和<logic:messageNotPresent>标签用来判断是否在request范围内在在指定的

ActionMessages(或其子类ActionErrors)  对象, 以及在ActionMessages 对象中是否存特定的信息

<logic:messagesPresent>    存在指定信息
<logic:messagesNotPresent> 不存在指定信息

A. name 属性 : 指定request 范围内检索ActionMessages 对象的属性key.
B. message 属性 : 如果为 true , 则从request 范围内检索属性key 为Globals.MESSAGE_KEY 的ActionMessages , 此时name 属性指定值无效; 如果为false , 则根据 name属性指定key, 从request 范围内检索ActionMessages 对象; 如果此时没有设置name 属性, 则默认的属性key 为lobals.ERROR_KEY.
C. property 属性 : 指定从 ActionMessages 对象中检索某条消息的消息 key.

流程:
(1) 把 name 变量赋值给局部变量 key, 这个变量将用于在 request范围内检索 ActionMessages 对象.
(2) 如果 message 变量为 true , 就把局部变量 key 设为 Globals.MESSAGE_KEY 此时设置 name 是无效的.
(3) 调用 TagUtils.getInstance().getActionMessages(pageContext, key) 方法, 获得 request 范围内的ActionMessages 对象.
(4) 如果 property 变量不为null, 将再判断在 ActionMessages 对象中是否包含由property变量指定的消息key.


<%
    ActionErrors errors = new ActionErrors();
    errors.add("totallylost", new ActionMessage("application.totally.lost"));
    request.setAttribute(Globals.ERROR_KEY, errors);
    request.setAttribute("myerrors", errors);
%>
1. 从request 范围内检索属性key 为Globals.ERROR_KEY 的 ActionMessages 对象, 其判断结果为 true 将执行标签主体内容.
<logic:messagesPresent>
    Yes, there are errors.
</logic:messagesPresent>

2. 从request 范围内检索key为"myerrors" 的ActionMessages 对象,其判断结果为true, 将执行标签主体的内容.
<logic:messagesPresent name = "myerrors">
    Yes, there are errors in myerrors collection.
</logic:message>

3. 从request 范围内检索属性key 为Globals.MESSAGE_KEY的ActionMessages 对象, 由于不存在这样的ActionMessags 对象, 其判断结果为 true, 将执行标签主体内容.
<logic:messagesNotPresent message = "true">
    There are no normal messages.
</logic>

4. 从request 范围内检索属性 key 为Globals.ERROR_KEY 的ActionMessages 对象, 然后再从ActionMessages 对象中检索消息key 为"noSuchError" 的消息, 由于不存在这样的消息, 其判断结果为true , 将执行标签主体内容.
<logic:messagesNotPresent property = "noSuchError">
    There is no error name "SuchError".
</logic:messageNotPresent>

5. 从 request 范围内检索属性key 为Globals.ERROR_KEY 的ActionMessages 对象, 然后再从ActionMessages 对象中检索消息key 为"totallylost" 的消息, 判断结果为true, 将执行标签主体的内容.
<logic:messagesPresent property = "totallylost">
    There is an error named "totallylost".
</logic:messagePresent>
分享到:
评论
1 楼 jygdd 2008-03-31  
       

相关推荐

Global site tag (gtag.js) - Google Analytics