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

Struts的logiciterate标记完成复杂循环

阅读更多
  使用struts中的<logic:iterate>标记,可以完成一些复杂的循环。
  下面用了一个小例子说明这一点:
  
  IterateBean.java:
  
  package beantest;
  
  import org.apache.struts.action.ActionForm;
  
  public class IterateBean extends ActionForm {
  private String[] name_coll = null;
  public void setName_coll(String[] name_coll) {
  this.name_coll = name_coll;
  }
  public String[] getName_coll() {
  return this.name_coll;
  }
  
  private String[] name_new = null;
  public void setName_new(String[] name_new) {
  System.out.println("IterateBean:setName_new(String[])");
  this.name_new = name_new;
  }
  public String[] getName_new() {
  return this.name_new;
  }
  }
  
  IterateAction.java
  
  package beantest;
  
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  import org.apache.struts.action.Action;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;
  
  public class IterateAction extends Action {
  public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) throws Exception {
  IterateBean ibean = (IterateBean) form;
  String[] temp = {"bitan", "helen"};
  ibean.setName_coll(temp);
  temp = new String[] {"aaaaa", "bbbbb"};
  ibean.setName_new(temp);
  return mapping.findForward("iterate-view");
  }
  }
  
  iterate-view.jsp:
  
  <%@ page contentType="text/html;charset=gb2312" %>
  
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <logic:iterate id="iterate" name="ibean" property="name_coll" scope="request" offset="0" >
  
  <logic:iterate id="iterate_new" name="ibean" property="name_new" scope="request" offset="0" >
  name: <font color=red><%=iterate%></font> ; code: <font color=red><%=iterate_new%></font><br>
  </logic:iterate>
  
  ★〓〓〓〓〓〓〓〓★<br>
  <bean:include id="lower" page="/test/lower.jsp" />
  <bean:write name="lower" filter="false"/><br>
  </logic:iterate>
  
  lower.jsp:
  
  <font color=blue>hello, iterate!</font>
  
  struts-config.xml:
  
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE struts-config PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
  "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
  <struts-config>
  <form-beans>
  <form-bean type="beantest.IterateBean" name="ibean" />
  </form-beans>
  <action-mappings>
  <action path="/iterate-test" type="beantest.IterateAction" name="ibean" scope="request" >
  <forward path="/test/iterate-view.jsp" name="iterate-view" />
  </action>
  </action-mappings>
  </struts-config>
  
  web.xml:
  
  <?xml version="1.0" ?>
  <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
  <web-app>
  
  <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
  <param-name>config</param-name>
  <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>/eye/*</url-pattern>
  </servlet-mapping>
  
  </web-app>
  
  输出效果:
  
  name: bitan ; code: aaaaa
  name: bitan ; code: bbbbb
  ★〓〓〓〓〓〓〓〓★
  hello, iterate!
  name: helen ; code: aaaaa
  name: helen ; code: bbbbb
  ★〓〓〓〓〓〓〓〓★
  hello, iterate!
  
  如上所示,一个循环中不能直接将多个变量同时输出;但在循环中嵌套循环可以实现一种复杂效果。
  
  要实现在一个循环中将多个变量同时输出,可以引用<bean:include>、<bean:write>标记。
分享到:
评论

相关推荐

    struts1标记一下

    在实际开发中,Struts1标记与环境的交互是这样的:当JSP页面被请求时,JSP容器解析页面中的Struts1标记,根据TLD文件找到对应的标签处理器,然后生成Java代码。这个Java代码在Servlet容器中执行,通过ActionServlet...

    Struts标记库Struts标记库Struts标记库

    Struts标记库Struts标记库Struts标记库Struts标记库

    struts 配置文件 标记库

    ### Struts配置文件详解 #### 一、Struts配置文件:`struts-config.xml` `struts-config.xml`是Struts框架的核心配置文件之一,它主要用于定义应用...同时,Struts提供的丰富标记库也极大地简化了Web页面的开发过程。

    Struts标记库.doc

    ### Struts标记库详解 #### 一、Struts标记库概述 Struts标记库是用于构建基于JavaServer Pages (JSP) 的Web应用程序的一种工具集。它由一系列自定义的HTML标记组成,这些标记简化了在JSP页面中管理JavaBeans、...

    Struts标记库.chm

    Struts标记库是Java Web开发中的一个重要组成部分,它是由Apache软件基金会的Struts项目提供的一套预定义的JSP标签,这些标签旨在简化MVC(Model-View-Controller)架构中的视图层开发。在传统的JSP开发中,开发者...

    在struts2中要实现for循环

    在Struts2中,可以通过多种方式实现For循环的功能,其中最常用的是使用`&lt;s:iterator&gt;`标签来完成循环操作。 #### 使用`&lt;s:iterator&gt;`标签 `&lt;s:iterator&gt;`标签是Struts2中最常用的标签之一,它可以用来遍历集合(如...

    Struts标记库.rar

    Struts标记库是Java开发Web应用时常用的一个框架——Apache Struts的核心组成部分。Struts作为一个MVC(模型-视图-控制器)架构的实现,它极大地简化了Java Servlet和JSP(JavaServer Pages)的开发,提高了代码的可...

    如何使用Struts标记库

    使用Struts标记库的优点在于,它与Struts框架紧密结合,能够自动处理表单提交、验证和错误处理等问题,降低了开发复杂性,提高了代码的可维护性。通过合理利用这些标签,开发者可以更专注于业务逻辑,而非繁琐的HTML...

    struts框架及标记库

    ### Struts框架及标记库详解 #### Struts框架概述 Struts框架,作为Java Web开发中的经典MVC(Model-View-Controller)架构实现之一,自问世以来便因其组件的模块化、灵活性以及高重用性,而备受开发者青睐。其...

    Struts标记使用API

    Struts标记库是Java开发Web应用时常用的工具,它提供了许多预定义的JSP标签,使得开发者能够更方便地处理常见的Web开发任务,比如表单处理、数据展示等。Struts标记API是这些标签背后的一套接口和类,用于帮助开发者...

    struts2的复习

    Struts2是一个强大的Java Web应用程序开发框架,它基于MVC(Model-View-Controller)设计模式,为构建可维护、可扩展且结构清晰的Web应用提供了便利。在本复习资料中,我们将深入探讨Struts2的核心概念、主要特性...

    Struts循环标签

    Struts循环标签是Apache Struts框架中用于在JSP页面上动态显示数据集合的重要工具。Struts是一个开源的MVC(Model-View-Controller)框架,它极大地简化了Java Web应用的开发,尤其是在处理表单数据和展示动态内容时...

    struts的教程.doc

    Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32 转发和重定向标记 33 HTML...

Global site tag (gtag.js) - Google Analytics