<logic:messagesPresent property="property1" message="true"> Message:property1 存在 </logic:messagesPresent>
我们知道,在Action类中我们可以通过将一个ActionErrors或ActionMessages对象添加进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_KEY或Globals.ERROR_KEY的Errors/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_KEY或Globals.MESSAGE_KEY的对象。当然我们通过指定name属性,也可以得到我们自定义的名字。但问题是它将无法从我们自定义名字的对象中获得属性,也就是说你不能指定property,因为你自定义的名字无法映射到它所包含的对象中的属性(也就是没有getter()方法)。而如果用default的命名方式(Globals.ERROR_KEY或Globals.MESSAGE_KEY) ,struts就会建立这种对象与属性之间的映射。
与这个标签相反的是 <logic:messagesNotPresent />
分享到:
相关推荐
在Struts框架中,逻辑标签(LOGIC标签)是JSP标签库的一部分,用于处理页面的流程控制和逻辑判断。这些标签简化了在JSP页面上进行条件判断和循环操作,从而使得代码更易读、更易于维护。 **1. `logic:iterate`标签*...
Struts Logic 标签解释和示例 Struts Logic 标签是一种功能强大的标签库,提供了多种逻辑判断和控制流程的功能。下面将对 Struts Logic 标签进行详细的解释和示例。 比较运算的 Logic 标签 * `<logic:equal>`:...
通过上述详细介绍,我们可以看到Struts标签的强大之处,它不仅简化了Web开发的工作量,还提高了开发效率。无论是从数据绑定、表单生成还是逻辑控制等方面,Struts都提供了一套完整的解决方案。因此,对于想要深入...
- `logic:messagesPresent`/`logic:messagesNotPresent`:检查ActionMessage或ActionError是否存在。 - `logic:iterate`:遍历集合,如ArrayList、Map等,并将其内容输出到页面。 - `logic:present`/`logic:not...
- **logic:messagesPresent**: 检查是否有消息存在,通常用于错误消息的显示。 - **logic:empty**: 检查一个集合或数组是否为空。 - **logic:match**: 进行模式匹配,支持正则表达式。 - **logic:equal**: 比较两...
- `logic:messagesPresent`: 检查是否有任何错误或消息存在。 - `logic:empty`: 检查集合或属性是否为空。 - `logic:match`: 比较两个值是否相等。 - `logic:equal`: 检查两个值是否相等,支持比较不同类型的...
1. C.4Logic标签库的核心功能:logic标签库为JSP页面提供了一种表达式语言(EL)以及一系列标签,用于实现条件逻辑、循环迭代和数据比较等操作。这些操作是JSP页面开发中不可或缺的部分,logic标签库使这些操作的...
- **logic:messagesPresent**、**logic:messagesNotPresent** 检查是否有错误或信息消息。 - **logic:equal**、**logic:notEqual**、**logic:greaterThan**、**logic:lessThan** 等比较操作标签,用于条件判断。 ...
Struts标签是Apache Struts框架中的重要组成部分,用于构建MVC(模型-视图-控制器)架构的应用程序。这些标签简化了JSP页面的编写,提供了更清晰、更可维护的代码结构。以下是对Struts标签的详细讲解。 1. **Bean...
- `<logic:messagesPresent>`、`<bean:message>`:处理错误消息和显示国际化信息。 2. 显示标签: - `<display:table>`:用于展示数据集合,如数据库查询结果,支持分页、排序等功能。 - `<display:column>`:...
JSTL(JavaServer Pages Standard Tag Library)是一组用于JSP的标准标签库,Struts可以与之集成,提高代码的可读性和可维护性。例如,`<c:forEach>`用于循环,`<fmt:formatDate>`格式化日期。 4. **Struts2标签库...
【逻辑标签库】是JavaServer Pages (JSP)中用于实现条件判断、循环和流程控制的一种功能强大的工具,尤其在Apache Struts框架中广泛应用。它提供了丰富的标签来简化页面逻辑,使得开发者能够在JSP页面中方便地进行...
**logic:messagesPresent** - **功能概述**:检查是否有消息存在,常用于显示错误或提示信息。 **logic:empty** - **功能概述**:检查字符串、集合或数组是否为空。 **logic:match** - **功能概述**:检查两个字符...
Struts Logic 标签库是Struts框架中一个非常重要的组成部分,它提供了一系列逻辑控制标签,帮助开发者更容易地实现复杂的业务逻辑处理。下面我们将详细介绍Struts Logic 标签库中的各个标签及其用法。 ##### 1. `...
- 使用`<logic:messagesPresent>`和`<html:messages>`处理全局错误和警告。 - 结合Struts的Validator框架,利用`<html:errors>`标签进行前端验证提示。 五、Struts 2的升级 随着Struts 2框架的出现,其Taglibs也...
再者,Logic Tags库提供了逻辑控制和判断功能,如`<logic:iterate>`, `<logic:present>`, `<logic:messagesPresent>`, `<logic:empty>`, `<logic:match>`, `<logic:equal>`, 和`<logic:forward>`等。例如,`<logic:...
Logic标签库提供了逻辑控制和集合迭代的功能,如`<logic:iterate>`、`<logic:present>`、`<logic:messagesPresent>`、`<logic:empty>`、`<logic:match>`、`<logic:equal>`和`<logic:forward>`等。例如,`<logic:...
24. `logic:messagesPresent` 和 `logic:noMessagesPresent`:这两个标签用于检查是否有错误或信息消息存在,如果有则显示消息。 25. `logic:empty` 和 `logic:notEmpty`:这两个标签用于判断一个集合或对象是否为...
使用Struts的 `<logic:messagesPresent>` JSP标签来显示任何错误消息,或者在视图层使用条件语句来根据Action的返回值展示不同的界面。 8. **运行和测试**: 配置好Web应用服务器(如Tomcat),将项目部署上去,...