`
annie09
  • 浏览: 21729 次
  • 性别: Icon_minigender_2
  • 来自: canada
最近访客 更多访客>>
社区版块
存档分类
最新评论

logic:messagesPresent

阅读更多

logic:messagesPresent标签的典型用法:

 

<logic:messagesPresent>
         <ul>
                  <html:
messages id="message">
                             <li><bean:write
name="message"/></li>
                  </html:messages>
         </ul>
</logic:messagesPresent>

 

logic:messagesPresent标签用于以下情况:
request作用域中存在一个ActionMessages对象,标签的property属性和ActionMessages中的property对应。 request作用域中存在一个ActionErrors对象,标签的property属性和ActionErrors中的property对应。 存在一个String对象,将其转换(构造)ActionMessage然后在添加到ActionMessages中。

存在一个String Array对象,将数组中的每一个String转换成一个ActionMessage,在将其添加到ActionMessages中。 标签的message属性值为true时将以Globals.MESSAGE_KEYkeyrequest作用域中查找Message,其它情况下,将name的值作为key查找,如果name 没有出现,默认值为Globals.ERROR_KEY

html:message 可以让你向用户显示错误信息(默认)或消息信息,而html:errors 只显示错误信息。很明显,错误信息或消息信息一定要保存在request里,否则就什么也不会显示。

Ref:

[1]http://struts.apache.org/1.x/struts-taglib/tlddoc/index.html

[2]http://www.diybl.com/course/3_program/java/javajs/2008711/132741.html

 

<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就会建立这种对象与属性之间的映射。

 

分享到:
评论

相关推荐

    Struts标签 -LOGIC标签

    `logic:messagesPresent`会在有消息时显示,`logic:messagesNotPresent`则在没有消息时显示。它们通常用于处理表单验证错误: ```jsp &lt;logic:messagesPresent&gt; &lt;li&gt;&lt;bean:message key="error.username.required...

    struts logic 标签解释 跟例子

    * `&lt;logic:messagesPresent&gt;`:判断指定的消息是否存在 * `&lt;logic:messagesNotPresent&gt;`:判断指定的消息是否不存在 循环遍历的 Logic 标签 * `&lt;logic:iterate&gt;`:进行循环遍历 请求转发或重定向的 Logic 标签 *...

    Struts标签手册

    - 使用`&lt;html:errors&gt;`标签来显示全局错误,以及`&lt;logic:messagesPresent&gt;`来显示ActionForm级别的错误信息。 - 在处理表单数据时,利用`&lt;html:checkbox&gt;`, `&lt;html:radio&gt;`和`&lt;html:select&gt;`等标签,确保数据绑定...

    struts标准手册

    `logic:messagesPresent`标签用于检查是否有错误消息存在。 示例代码: ```jsp &lt;logic:messagesPresent&gt; &lt;html:errors/&gt; &lt;/logic:messagesPresent&gt; ``` - **logic:empty** `logic:empty`标签用于检查集合...

    重要知识logic标签库.pdf

    如果页面中有错误信息,`&lt;logic:messagesPresent&gt;`将被执行。 6. **present/notPresent**:检查特定的属性或对象是否存在。如果对象在当前作用域内,`&lt;logic:present&gt;`会执行,反之,`&lt;logic:notPresent&gt;`会执行。 ...

    struts1标签库详解借鉴.pdf

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

    Java+structs快速学习指南

    &lt;/logic:messagesPresent&gt; ``` ##### 12. `notEmpty` 标签 - **功能**:如果变量非空且非null,则执行标签体内的内容。 - **示例**: ```xml &lt;logic:notEmpty name="user" property="address"&gt; &lt;p&gt;User has an...

    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.2标签库详解.doc

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

    struts常用标签及其用法归纳

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

    struts1标签库详解

    * logic:messagesPresent:判断是否有国际化消息。 * logic:present:判断一个值是否存在。 * logic:notEqual:判断两个值是否不相等。 * logic:notPresent:判断一个值是否不存在。 Struts1 标签库提供了非常多的...

    struts1标签库

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

    Struts记录整理文档

    在`&lt;logic:messagesPresent&gt;`标签中,`&lt;html:messages id="error" property="name"&gt;`会检查`name`属性是否存在消息,如果有则显示。 5. **消息按key显示**: 在Action中,键名(如`name`)必须与JSP页面上的属性值...

    Java EE Struts 标签

    在一个简单的登录页面中,可以使用`&lt;html:text&gt;`创建用户名和密码输入框,`&lt;html:submit&gt;`创建提交按钮,`&lt;bean:message&gt;`显示错误信息,通过`&lt;logic:messagesPresent&gt;`检查是否有错误信息。 6. **优点**: - ...

    Struts Taglibs 标签

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

    struts标签手册

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

    struts标签中文文档

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

Global site tag (gtag.js) - Google Analytics