服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

struts的标记完成复杂循环


  使用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>标记。

扫描关注微信公众号