`

[原创]使用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>标记。

分享到:
评论

相关推荐

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

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

    struts1标记一下

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

    如何使用Struts标记库

    下面将详细介绍Struts标记库中的几个主要标签及其用法。 1. **HTML 标记库**: - `&lt;html:html&gt;`:这是HTML页面的基础标签,用于声明一个HTML文档的开始和结束。例如: ```jsp ”/WEB-INF/struts-html.tld” ...

    struts 配置文件 标记库

    `struts-config.xml`是Struts框架的核心配置文件之一,它主要用于定义应用中的表单对象、动作映射以及转发规则等。 ##### 1. `&lt;form-beans&gt;`与`&lt;form-bean&gt;`元素 - **`&lt;form-beans&gt;`**:该元素用于包含多个`...

    Struts标记库.doc

    这些标记被封装在一个普通的标记库中,在文件`struts-bean.tld`中定义了它们的标记库描述器。Bean标记库将标记定义在四个子类别中: 1. **创建和复制bean的标记** 2. **脚本变量定义标记** 3. **bean翻译标记** 4. ...

    Struts标记使用API

    以下是对Struts标记使用API的详细解释。 1. **基础概念** - **ActionForm**: 在Struts框架中,ActionForm对象用于在控制器和视图之间传递数据。它包含了用户从表单提交的数据,可以通过Struts标签与HTML表单元素...

    struts2.0标签使用

    在探讨Struts2.0标签库的使用时,我们首先需要了解Struts2.0框架的基本概念及其在MVC架构中的角色。Struts2.0是基于Java的一个开源Web应用框架,它继承了Struts1.x的优点并在此基础上进行了大量的改进和增强。Struts...

    Struts中文手册[文字版][中文]

    书名:Struts中文手册[文字版][中文](电子书) 格式:PDF 1. Struts 框架1 1.1. Struts 压缩包内容.1 1.2. Struts 体系结构1 1.2.1. 模型.2 1.2.2. 视窗.2 1.2.3. 控制器.2 ...2.4.4. 使用模板标记.27

    Struts标记库.rar

    Struts标记库是Struts框架提供的一个强大的工具,它包含了一系列自定义的JSP标签,这些标签可以帮助开发者更高效、更简洁地编写页面逻辑,减少Java代码在JSP页面中的使用,从而提高开发效率和代码质量。 1. **...

    使用Struts 2框架开发租房网站

    在开发租房网站的过程中,学生将学习如何创建Action类、配置struts.xml、设计数据库模型、编写DAO和Service层代码、实现页面交互以及使用Struts 2提供的各种功能来优化用户体验。这将帮助他们掌握Web应用开发的基本...

    Struts标记库.chm

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

    struts中文帮助手册

    7. **国际化与本地化**:讲解如何在Struts中实现多语言支持,以及资源文件的使用。 8. **最佳实践**:提供一些优化Struts应用的建议,如性能调优,代码结构的优化等。 9. **案例分析**:通过实际应用场景,展示...

    struts2的复习

    在本复习资料中,我们将深入探讨Struts2的核心概念、主要特性以及如何在实际开发中应用。 一、Struts2框架基础 1. 框架概述:Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,吸收了其他框架如WebWork...

    [浪曦原创]Struts系列 第6讲 Struts的验证框架Validate使用续二(zk001)

    在Struts中,通常会在`struts-config.xml`或`struts-validation.xml`文件中定义验证规则。例如,你可以为每个表单字段定义一个或多个验证规则,如非空检查、长度限制、格式验证等。例如: ```xml , maxlength"&gt;...

    struts2.0中文教程

    05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器(Interceptor) 08 在Struts 2中实现IoC 09 在Struts 2中实现文件上传 10 在Struts...

Global site tag (gtag.js) - Google Analytics