网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Jboss的JDBC数据源配置步骤详解大.
.J2SE 5.0新特性之static import.
.JCA: Java步入应用集成时代.
.Java如何处理ARP报文的收发.
.POJO应用框架:SpringVs.EJB3.0.
.JAVA30个基本知识.
.发挥J2EE的优势,管理J2EE的世界.
.小小日历(calendar).
.JAVA几个常见错误简析(下).
.在RCP中实现用托拽打开Editor.
.实现游戏开发中的屏幕滚动功能.
.Pattens In Java(中文).
.Sun称Java企业系统支持Windows和.
.JavaBean 101 8.
.分析并修补 resin 的中文处理.
.Java的垃圾回收机制研究.
.提高Java技能的几种简单有效的方.
.Java中有返回值的方法与循环执行.
.Java 理论与实践: 再谈Urban性能.
.java中中文问题详解.

Struts中用动态选择的元素创建复选框

发表日期:2008-1-5



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

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

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

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

  创建动态复选框

  创建动态复选框的诀窍包含三个主要部分:
  • 一个表单 bean,容纳复选框的 String[] 数组和表示选中复选框的 String[] 数组。

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

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

  第 1 步. 创建表单 bean

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

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

  清单 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[] 
mountains 
= 
{"Everest","K2","Kangchenjunga","Lhotse", 
"Makalu","Kangchenjunga South", 
"Lhotse Middle","Kangchenjunga West", 
"Lhotse Shar","Cho Oyu"}; 

/*Getter for selectedMountains*/ 
public String[] getSelectedMountains() { 
return this.selectedMountains; 
} 

上一篇:在Eclipse中创建新的重构功能 人气:564
下一篇:揭开 Java 安全标准的神秘面纱 人气:611
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐