`
zengjinliang
  • 浏览: 308793 次
  • 性别: 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是这些标签背后的一套接口和类,用于帮助开发者...

    Struts循环标签

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

    struts2.0标签使用

    通过以上对Struts2.0标签的介绍和分析,我们可以看出Struts2.0标签的强大功能,尤其是在处理复杂的页面逻辑时。合理运用这些标签,不仅可以让页面开发变得更加简单高效,还可以显著提高程序的可维护性和可扩展性。...

    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