`

struts-html标签的使用

阅读更多

logic:iterate
logic:iterate标签用来迭代集合,您可以使用如下方式来为这个
标签指定其要叠代的集合:

使用一个运行时表达式,这个表达式的值是一个集合。
用name属性引用一个JSP Bean,这个JSP Bean本身就是一个集合。
用name属性引用一个JSP Bean,这个JSP Bean的一个属性是一个集合,
这时可以联合使用property来指定这个集合。
上面所提到的集合可以是:

对象类型或原子类型的数组(Array)。
java.util.Collection的实现,包括ArrayList,Vector。
java.util.Enumeration的实现。
java.util.Iterator的实现。
java.util.Map的实现,包括HashMap,Hashtable和TreeMap。
如果您叠代的集合中含有null的值,这时需要采取一定的措施,
因为这时logic:iterate不会在page作用域中创建对象。一般是
使用<logic:present>标签或<logic:notpresent>标签来判断一下。</logic:notpresent></logic:present>

下面是logic:iterate叠代ArrayList的示例的对象引用关系和部分代码:
在这里只是简单的加入了三个Person对象,在实际的应用中这些数据应该
取自数据库。具体的代码如下:

public ActionForward execute(ActionMapping mapping,ActionForm form,   
 HttpServletRequest request, 
 HttpServletResponse response) {

    ListForm listForm = (ListForm) form;
    List <person></person> persons = new ArrayList <person></person> ();
    Person person1 = new Person(); 
    person1.setId("00001");

    person1.setName("赵辰");  
    Person person2 = new Person(); 
    person2.setId("00002"); 
    person2.setName("李为芳");  

    Person person3 = new Person(); 
    person3.setId("00003");
   person3.setName("王微"); 
 persons.add(person1); 
persons.add(person2); 
persons.add(person3);  
listForm.setPersons(persons); 
 return mapping.findForward("success");
}

标签输出的结果为:

00001-->赵辰 00002-->李为芳 00003-->王微

logic:present
如果指定的值出现该标签就会创建其标签体内的内容。该标签用于以下情况:

检查具有指定名称的cookie是否出现。
检查具有指定名称的header是否出现。
检查具有指定名称的JSP Bean是否出现 或 检查具有指定名称的JSP Bean中
的property属性是否出现。
检查request中指定名称的参数是否出现。
检查当前的认证用户是否与指定的安全角色相关联。
检查当前认证的主体是否具有指定的名字。
下面的代码示例了logic:present标签检查具有指定
名称User-Agent的header是否出现<logic:present header="User-Agent">


</logic:present>
logic:notPresent标签的应用正好和logic:present标签相反。
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_KEY为key
在request作用域中查找Message,其它情况下,将name的值作为key查找,
如果name 没有出现,默认值为Globals.ERROR_KEY。

下面的代码示例了logic:messagesPresent标签的典型用<logic:messagespresent>
</logic:messagespresent> 
标签logic:messagesNotPresent的应用正好
和logic:messagesPresent的应用相反。

 

logic:empty
logic:empty标签是用来判断是否为空的。如果为空,
该标签体中嵌入的内容就会被处理。该标签用于以下情况:

当Java对象为null时
当String对象为""时
当java.util.Collection对象中的isEmpty()返回true时
当java.util.Map对象中的isEmpty()返回true时
下面的代码示例了logic:empty标签判断集合persons是否为空:

<logic:empty name="listForm" property="persons"> 
</logic:empty> 
logic:notEmpty标签的应用正好和logic:empty标签相反。

 

logic:match
logic:match标签用来处理子串匹配问题。

如果指定的值匹配该标签就会创建其标签体内的内容。该标签用于以下情况:

检查具有指定名称的cookie是否与该标签的value匹配。
检查具有指定名称的header是否与该标签的value匹配。
检查具有指定名称的JSP Bean是否与该标签的value匹配
或 检查具有指定名称的JSP Bean中的property属性值是否与该标签的value匹配。
检查request中指定名称的参数值是否与该标签的value匹配。 

下面的代码示例了logic:match标签的典型用法:<logic:present header="User-Agent">
<logic:match header="User-Agent" value="MSIE 6.0">   
MS IE 6.0 
</logic:match></logic:present> 
logic:notMatch标签的应用正好和logic:match标签相反。

logic:equal
这里要介绍的不只是logic:equal(=)标签,而是要介绍一类标签,这类标签完成比较运算,
包括:

logic:equal(=)
logic:notEqual(!=)
logic:greaterEqual(>=)
logic:lessEqual(<=)
logic:graterThan(>)
logic:lessThan(<)
该类标签的用法类似,我们只介绍logic:equal标签,其它的留给您自己去完成。

logic:equal是用来判断是否相等的。如果相等,该标签体中嵌入的内容就会被处理。
该标签用于以下情况:

比较由该标签的cookie属性指定的cookie的值是否与该标签的value属性值相等。
比较由该标签的header属性指定的header的值是否与该标签的value属性值相等。
比较由该标签的name属性指定的JSP Bean是否与该标签的value属性值
相等(property属性不出现)或比较由该标签的name属性指定的JSP Bean中
的property属性值是否与该标签的value属性值相等。
比较由该标签的parameter属性指定的参数值(request中)是否与
该标签的value属性值相等。

logic:forward
我觉得将forward和redirect这两个动作放到一起对比着介绍更加有利于理解,
基于此原因也就将logic:forward和logic:redirect这两个标签也拿到这里一起介绍了。

让我们看看这两个动作的区别:

forward是在servlet内部执行,浏览器完全不会感知到这个动作,
原始的url也不会改变,浏览器重新装载的话也只是对原始的请求进行简单的重复。
redirect则分成两个步骤:第一步是web应用程序告诉浏览器第二个url,
然后浏览器向第二个url发送请求。

redirect比forward慢,因为浏览器要做二次请求。还有就是要注意,在
第一次的请求作用域(request作用域)内的bean对于第二次请求是不可见的。

理解了上面描述的区别也就知道了什么时候该选用logic:forward标签
什么时候该选用logic:redirect标签了。
logic:forward标签完成PageContext.forward()
或HttpServletResponse.sendRedirect(),
如何选择由控制器决定。logic:redirect标签完成HttpServletResponse.sendRedirect()。
在使用logic:redirect标签时我们可以向使用html:link一样构造baseurl
和query参数。如果您感兴趣可以参考html:link标签。

 

集合persons为空!
   
分享到:
评论

相关推荐

    struts-html标签

    Struts HTML标签是Java开发中使用Struts框架进行Web应用时的重要组成部分,它提供了一系列预定义的JSP标签,简化了HTML表单的处理和与控制器(Action)之间的交互。这些标签使得开发者能够更方便地处理用户输入、...

    Struts标签- HTML标签

    在Struts表单中使用Hibernate实体类作为ActionForm,可以直接通过HTML标签与数据库对象交互,简化数据操作。 7. **Struts 1与Struts 2的区别** 在Struts 2中,HTML标签被替换为更强大的Struts Tags,提供了更多的...

    struts-core-1.3.8-API文档-中文版.zip

    标签:core、apache、struts、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译...

    struts的tld标签库文件

    struts的tld文件,struts-html标签库。这个库可以被用来生成动态HTML用户界面和窗体。 ·struts-bean标签库。在将JavaBean代码放入JSP 页面时这个库提供实质性的加强的功能以改善其性能,它由标签提供。 ·struts-...

    struts-menu文件

    此外,还需要在JSP页面上使用Struts-menu提供的标签库来展示菜单。 7. **权限控制**:Struts-menu支持与Spring Security或Apache Shiro等权限管理框架集成,可以实现菜单项的动态显示,根据用户的权限来决定哪些...

    struts-1.2.9-lib.zip和struts-1.2.9-src.zip

    、`struts-logic.jar`和`struts-nested.jar`等,提供了一系列预定义的JSP标签,如logic标签用于流程控制,bean标签用于展示数据,html标签则用于表单元素的创建。 3. **国际化支持**:`struts-tiles.jar`提供了...

    Struts-Menu实例教程

    - **struts-config.xml**:在Struts的核心配置文件中,需要添加Struts-Menu的相关拦截器和标签库引用,以便在页面上使用。 4. **创建菜单模型** 在Java类中,可以定义一个菜单模型,用来存储菜单的数据。这些模型...

    struts-1.3.8-lib(new)

    2. **struts-bean.jar**:提供Bean相关的标签库,如logic和html标签。 3. **struts-html.jar**:包含HTML表单标签,用于创建用户界面。 4. **struts-tiles.jar**:用于页面布局和组合,提供Tiles定义和控制器。 5. *...

    struts-1.3.8-all.zip

    7. **JSP和Tags**:Struts提供了丰富的JSP标签库,如logic、bean、html和nested标签,使得开发者能更方便地创建动态Web页面。 在Struts 1.3.8中,可能包含以下部分: - **lib** 目录:包含了运行Struts应用所需的...

    Struts所有jar包、DTD文件(struts-1.2.9-bin.rar)

    和`struts-tiles.jar`,它们分别提供Bean标签、HTML标签和Tiles布局支持。 3. **国际化支持**:如`struts-resources.jar`,包含用于多语言环境的资源文件。 4. **其他依赖库**:如`commons-logging.jar`、`commons-...

    使用Struts-menu轻松实现网页菜单.doc

    ### 使用Struts-menu实现网页菜单的关键知识点 #### Struts-menu简介 Struts-menu是一个基于Apache Struts框架的扩展,用于简化网页菜单的创建与管理。它不仅提供了多种样式的菜单,如下拉菜单(`DropDownMenu`)、...

    struts-menu集成struts2.3.1例子以及注意的地方

    5. **使用`struts-menu`标签**:在JSP页面中,使用`struts-menu`提供的标签来渲染菜单。这些标签会根据配置的数据源生成HTML代码。 6. **注意事项**:集成过程中可能会遇到的问题包括版本兼容性、资源加载问题、...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    标签:apache、struts2、plugin、struts、json、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...

    struts1-html标签

    ### Struts1 HTML标签详解 #### 一、`&lt;html:form&gt;`标签解析 `&lt;html:form&gt;`是Struts1框架中用于创建HTML表单的标签。它为开发者提供了更多的控制选项,使得表单创建更为灵活且方便。 **基本用法**: - **必需属性**...

    struts-menu例子

    - **JSP页面**:展示了如何在视图层使用Struts-menu标签库生成菜单。 - **其他资源**:可能包含CSS样式文件和JavaScript脚本,用于美化和交互效果。 4. **学习与实践** - **阅读源码**:分析例子中的XML配置文件...

    struts标签-手册

    2. **struts-html标签**:这些标签主要用于处理HTML表单元素和用户交互。例如,`&lt;html:text&gt;`用于创建一个文本输入字段,`&lt;html:submit&gt;`用于创建提交按钮,`&lt;html:errors&gt;`则可以显示所有验证错误。 3. **struts-...

    struts-1.3.8.rar

    6. **JSP Taglib**:一系列 JSP 标签库,如 `&lt;html:form&gt;` 和 `&lt;logic:iterate&gt;`,简化 JSP 页面的编写。 在 Struts 1.3.8 版本中,开发者可能会遇到以下关键特性: - **安全更新**:该版本可能包含了对之前版本中...

    Struts标签库 Struts 标签库

    - 使用`&lt;s:form&gt;`标签替代HTML的`&lt;form&gt;`,因为Struts2的表单标签可以自动处理请求参数和错误信息。 - 结合OGNL表达式,如`&lt;s:property value="%{#session.username}" /&gt;`,可以方便地访问各种上下文对象。 - 在...

    Struts应用开发完全手册(html标签)

    在使用Struts的HTML标签库之前,需要确保应用的`/WEB-INF/lib`文件夹下存在`struts.jar`文件。这个文件包含了处理Struts中所有标签所需的类。接下来,要在`/WEB-INF`目录下创建`tld`文件夹,并将`struts-html.tld`...

    struts-core-1.3.10.jar.zip

    11. **标签库**:Struts提供了丰富的JSP标签,如logic、bean、html和tiles等,简化了JSP页面的编写,提高了开发效率。 SOA(Service-Oriented Architecture)即面向服务架构,是一种设计模式,强调将功能组织为一组...

Global site tag (gtag.js) - Google Analytics