`
okcomputer2009
  • 浏览: 35529 次
  • 性别: Icon_minigender_1
  • 来自: singapore
社区版块
存档分类
最新评论

Struts1.3 Tag总结之----Logic:messagesPresent

阅读更多

<logic:messagesPresent property="property1" message="true"> Message:property1 存在 </logic:messagesPresent>

我们知道,在Action类中我们可以通过将一个ActionErrorsActionMessages对象添加进request scope

saveMessages(request, msgs);

Globals.MESSAGE_KEY(值为org.apache.struts.action.MESSAGE”)作为键。

 

saveErrors(request, msgs);

Globals.ERROR_KEY(值为org.apache.struts.action.ERROR”)作为键。

 

<logic:messagesPresent/> 标签就是用来检测在request scope内,有没有以名为Globals.MESSAGE_KEYGlobals.ERROR_KEYErrors/Messages对象。

 

该标签的message属性,指定检测在那里进行。(Globals.ERROR_KEY缺省  Globals.MESSAGE_KEY 设为true

 

如:<logic:messagesPresent property="property1">

就是检测在request scope中有没有一个名为:org.apache.struts.action.ERROR” 也就是Globals.ERROR_KEY的值,的对象,而在该对象中,有没有一个名为”property1”的属性。

 

如:<logic:messagesPresent property="property1" message="true">

就是检测在request scope中有没有一个名为:org.apache.struts.action.Message” 也就是Globals.MESSAGE_KEY的值,的对象,而在该对象中,有没有一个名为”property1”的属性。

 

其实我们在后台通过 saveErrors(request, msgs); 就相当于

request.setAttribute(Globals.ERROR_KEY, msgs);

之所以用saveErrors方法,就是简化操作,让我们不用为这个对象命名,使用default的名字,从而前台logic:messagesPresent标签中也不用指定name属性,因为在属性message不是true的情况下,该标签默认认为,我们就是来检测名为 Globals.ERROR_KEY的对象。

所以,如果我们在后台 request.setAttribute("MyErrors", msgs);

而前台 <logic:messagesPresent name="MyErrors" property="property1">

指定属性name,是一样可以进行判断的。

 

而当message属性为true的时候,标签就会忽略name属性,只检测名为 Globals.MESSAGE_KEY的对象。这种情况我们就只能以这个default的名字来命名存储在request scope中的对象。

 

可为什么我们一定要用struts默认的名字(Globals.ERROR_KEY/Globals.MESSAGE_KEY)呢?因为我们只检测是否存在是不够的。对于messages或者errors我们更重要的是来显示它的信息(丛rescources里面获取)一般用<html:messages/>或者<html:errors/>。而这两个标签,默认都是得到名为Globals.ERROR_KEYGlobals.MESSAGE_KEY的对象。当然我们通过指定name属性,也可以得到我们自定义的名字。但问题是它将无法从我们自定义名字的对象中获得属性,也就是说你不能指定property,因为你自定义的名字无法映射到它所包含的对象中的属性(也就是没有getter()方法)。而如果用default的命名方式(Globals.ERROR_KEYGlobals.MESSAGE_KEY) struts就会建立这种对象与属性之间的映射。

 

与这个标签相反的是 <logic:messagesNotPresent />

分享到:
评论

相关推荐

    Struts标签 -LOGIC标签

    在Struts框架中,逻辑标签(LOGIC标签)是JSP标签库的一部分,用于处理页面的流程控制和逻辑判断。这些标签简化了在JSP页面上进行条件判断和循环操作,从而使得代码更易读、更易于维护。 **1. `logic:iterate`标签*...

    struts logic 标签解释 跟例子

    Struts Logic 标签解释和示例 Struts Logic 标签是一种功能强大的标签库,提供了多种逻辑判断和控制流程的功能。下面将对 Struts Logic 标签进行详细的解释和示例。 比较运算的 Logic 标签 * `&lt;logic:equal&gt;`:...

    struts标准手册

    通过上述详细介绍,我们可以看到Struts标签的强大之处,它不仅简化了Web开发的工作量,还提高了开发效率。无论是从数据绑定、表单生成还是逻辑控制等方面,Struts都提供了一套完整的解决方案。因此,对于想要深入...

    struts常用标签及其用法归纳

    - `logic:messagesPresent`/`logic:messagesNotPresent`:检查ActionMessage或ActionError是否存在。 - `logic:iterate`:遍历集合,如ArrayList、Map等,并将其内容输出到页面。 - `logic:present`/`logic:not...

    struts1标签库详解

    - **logic:messagesPresent**: 检查是否有消息存在,通常用于错误消息的显示。 - **logic:empty**: 检查一个集合或数组是否为空。 - **logic:match**: 进行模式匹配,支持正则表达式。 - **logic:equal**: 比较两...

    struts1标签库详解借鉴.pdf

    - `logic:messagesPresent`: 检查是否有任何错误或消息存在。 - `logic:empty`: 检查集合或属性是否为空。 - `logic:match`: 比较两个值是否相等。 - `logic:equal`: 检查两个值是否相等,支持比较不同类型的...

    logic标签库.pdf

    1. C.4Logic标签库的核心功能:logic标签库为JSP页面提供了一种表达式语言(EL)以及一系列标签,用于实现条件逻辑、循环迭代和数据比较等操作。这些操作是JSP页面开发中不可或缺的部分,logic标签库使这些操作的...

    struts1.2标签库详解.doc

    - **logic:messagesPresent**、**logic:messagesNotPresent** 检查是否有错误或信息消息。 - **logic:equal**、**logic:notEqual**、**logic:greaterThan**、**logic:lessThan** 等比较操作标签,用于条件判断。 ...

    Struts标签手册

    Struts标签是Apache Struts框架中的重要组成部分,用于构建MVC(模型-视图-控制器)架构的应用程序。这些标签简化了JSP页面的编写,提供了更清晰、更可维护的代码结构。以下是对Struts标签的详细讲解。 1. **Bean...

    struts标签中文文档

    - `&lt;logic:messagesPresent&gt;`、`&lt;bean:message&gt;`:处理错误消息和显示国际化信息。 2. 显示标签: - `&lt;display:table&gt;`:用于展示数据集合,如数据库查询结果,支持分页、排序等功能。 - `&lt;display:column&gt;`:...

    Java EE Struts 标签

    JSTL(JavaServer Pages Standard Tag Library)是一组用于JSP的标准标签库,Struts可以与之集成,提高代码的可读性和可维护性。例如,`&lt;c:forEach&gt;`用于循环,`&lt;fmt:formatDate&gt;`格式化日期。 4. **Struts2标签库...

    重要知识logic标签库.pdf

    【逻辑标签库】是JavaServer Pages (JSP)中用于实现条件判断、循环和流程控制的一种功能强大的工具,尤其在Apache Struts框架中广泛应用。它提供了丰富的标签来简化页面逻辑,使得开发者能够在JSP页面中方便地进行...

    struts标签手册

    **logic:messagesPresent** - **功能概述**:检查是否有消息存在,常用于显示错误或提示信息。 **logic:empty** - **功能概述**:检查字符串、集合或数组是否为空。 **logic:match** - **功能概述**:检查两个字符...

    Java+structs快速学习指南

    Struts Logic 标签库是Struts框架中一个非常重要的组成部分,它提供了一系列逻辑控制标签,帮助开发者更容易地实现复杂的业务逻辑处理。下面我们将详细介绍Struts Logic 标签库中的各个标签及其用法。 ##### 1. `...

    Struts Taglibs 标签

    - 使用`&lt;logic:messagesPresent&gt;`和`&lt;html:messages&gt;`处理全局错误和警告。 - 结合Struts的Validator框架,利用`&lt;html:errors&gt;`标签进行前端验证提示。 五、Struts 2的升级 随着Struts 2框架的出现,其Taglibs也...

    Struts1标签手册

    再者,Logic Tags库提供了逻辑控制和判断功能,如`&lt;logic:iterate&gt;`, `&lt;logic:present&gt;`, `&lt;logic:messagesPresent&gt;`, `&lt;logic:empty&gt;`, `&lt;logic:match&gt;`, `&lt;logic:equal&gt;`, 和`&lt;logic:forward&gt;`等。例如,`&lt;logic:...

    Struts标签的使用

    Logic标签库提供了逻辑控制和集合迭代的功能,如`&lt;logic:iterate&gt;`、`&lt;logic:present&gt;`、`&lt;logic:messagesPresent&gt;`、`&lt;logic:empty&gt;`、`&lt;logic:match&gt;`、`&lt;logic:equal&gt;`和`&lt;logic:forward&gt;`等。例如,`&lt;logic:...

    struts1标签库

    24. `logic:messagesPresent` 和 `logic:noMessagesPresent`:这两个标签用于检查是否有错误或信息消息存在,如果有则显示消息。 25. `logic:empty` 和 `logic:notEmpty`:这两个标签用于判断一个集合或对象是否为...

    Struts1.x的登录示例

    使用Struts的 `&lt;logic:messagesPresent&gt;` JSP标签来显示任何错误消息,或者在视图层使用条件语句来根据Action的返回值展示不同的界面。 8. **运行和测试**: 配置好Web应用服务器(如Tomcat),将项目部署上去,...

Global site tag (gtag.js) - Google Analytics