快速业务通道

Struts的动态复选框-用动态选择的元素轻松创建复选框 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Struts的动态复选框-用动态选择的元素轻松创建复选框

时间:2011-08-18 IBM Danilo Gurovich

简介:Struts Recipes 的合著者 Danilo Gurovich 从 George Franciscus 停止的地方开始,介绍了 易于使用的创建动态选择复选框的 Struts 诀窍。

在用户界面设计中,复选框组不如它的同类 —— 多行选择框那样流行。它们基本上做的是同一件事 ,即选择映射到单一 name 属性的一组选项。当在组中使用时,复选框执行的功能实际与多行选择框一样 ,但是它们占据的屏幕空间更多。当希望用户在选择一个或多个选项之前能够看到所有选项的时候,这会 很有好处。

虽然在选项不多的时候,多行选择框通常提供更好的观感,但是当选择框必须动态呈现而且包含预选 功能时,对企业应用程序来说复选框组会是更好的选择。幸运的是,使用 Struts 框架可以很容易地创建 动态复选框组。

在这篇文章中,我将介绍一个简单的诀窍:用 Struts 的 <html:multibox/> 和 <logic:iterate/> 标记在应用程序的视图层呈现大量条目,在本例中是 Java? Server Page(JSP )。

我先从使用复选框元素显示简单的 String[] 数组开始,数组中包含喜玛拉雅山的顶峰高度。然后, 我将创建另外一个 String[] 数组,包含 selectedMountains ,代表已经选中的复选框。复选框的预选 情况会在两个数组的交叉中产生。如果 selectedMountains 的初始数组为空,那么所有复选框最初都会 显示为未选中。

请参阅 下载 获得完整的示例源代码。应当拥有跟随本文所需要的每样东西。如果需要下载 Struts 框架,请参阅 参考资料。

创建动态复选框

创建动态复选框的诀窍包含三个主要部分:

一个表单 bean,容纳复选框的 String[] 数组和表示选中复选框的 String[] 数组。

一个 JSP,带有一个表单,在需要的时候显示复选框。

一个简单的 Action 类,从表单页面转到显示页面。

请注意 “Himalayas” 示例非常简单。用来填充复选框的字段应当来自更复杂的模型,比如这样的模 型,它能够标识用户,并选择要显示的字段,然后把业务对象认为需要的选项预先选中。我采用简单的模 型是为了更好地演示 Struts 的用户界面功能。代码示例使用 JSP 脚本语言是为了表示清楚。

第 1 步. 创建表单 bean

我先从创建 Struts 表单 bean 开始,它包含填充复选框所需要的信息。请注意清单 1 中的 TestForm.java 包含了两个示例 String[] 数组变量的 getter 和 setter。数组 mountains 代表示例复 选框的 全部选项,数组 selectedMountains 代表预选的在浏览器中显示为选中的元素。

除了代表初始选中的复选框,selectedMountains 还代表处理表单时,由用户选中的复选框。(它只 代表最终选中的元素。)当请求页面时,会显示复选框。当我在它们之间迭代时,与 selectedMountains 匹配的复选框元素就是选中的元素。

Struts的动态复选框-用动态选择的元素轻松创建复选框(2)

时间:2011-08-18 IBM Danilo Gurovich

清单 1 显示了 TestForm.java 的完整代码:

清单 1. TestForm.java

package com.strutsrecipes; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public final class CheckboxTestForm extends ActionForm { // Instance Variables /*Mountains "pre-selected"...*/ private String[] selectedMountains = {"Everest","K2","Lhotse"}; /*the ten tallest Mountains to iterate through*/ private String[] m

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号