|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。创立|静态|复选框在用户界面计划中,复选框组不如它的同类――多行选择框那样盛行。它们基础上做的是统一件事,即选择映照到单一name属性的一组选项。当在组中利用时,复选框实行的功效实践与多行选择框一样,可是它们占有的屏幕空间更多。当但愿用户在选择一个或多个选项之前可以看到一切选项的时分,这会很有优点。
固然在选项未几的时分,多行选择框一般供应更好的不雅感,可是中选择框必需静态出现并且包括预选功效时,对企业使用程序来讲复选框组会是更好的选择。侥幸的是,利用Struts框架能够很简单地创立静态复选框组。
在这篇文章中,我将先容一个复杂的窍门:用Struts的<html:multibox/>和<logic:iterate/>标志在使用程序的视图层出现大批条目,在本例中是JavaServerPage(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
- packagecom.strutsrecipes;importjavax.servlet.http.HttpServletRequest;importorg.apache.struts.action.ActionError;importorg.apache.struts.action.ActionErrors;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionMapping;publicfinalclassCheckboxTestFormextendsActionForm{//InstanceVariables/*Mountains"pre-selected"...*/privateString[]selectedMountains={"Everest","K2","Lhotse"};/*thetentallestMountainstoiteratethrough*/privateString[]mountains={"Everest","K2","Kangchenjunga","Lhotse","Makalu","KangchenjungaSouth","LhotseMiddle","KangchenjungaWest","LhotseShar","ChoOyu"};/*GetterforselectedMountains*/publicString[]getSelectedMountains(){returnthis.selectedMountains;}/*SetterforselectedMountains*/publicvoidsetSelectedMountains(String[]selectedMountains){this.selectedMountains=selectedMountains;}/*Getterforthemountains*/publicString[]getMountains(){returnthis.mountains;}/*Setterforthemountains*/publicvoidsetMountains(String[]mountains){this.mountains=mountains;}}
复制代码 第2步.编写JSP代码
接上去,我要编写页面的JSP代码,把TestForm.java的信息传送给视图层。在编写这个代码时,关头是要把对应的Struts标志库导进JSP。清单2的JSP代码暗示的是一个复杂的表单,显现复选框中响应的框已选中:
清单2.带有表单的JSP
- <%@tagliburi="http://jakarta.apache.org/struts/tags-html"prefix="html"%><%@tagliburi="http://jakarta.apache.org/struts/tags-bean"prefix="bean"%><%@tagliburi="http://jakarta.apache.org/struts/tags-logic"prefix="logic"%><%--htmlcode,etc...--><html:formaction="/FormAction"name="testForm"type="com.strutsrecipes.CheckboxTestForm"><h4><bean:messagekey="testForm.instruction"/></h4><logic:iteratename="testForm"property="mountains"id="mountain"><%--createthecheckboxandselectedattribute--><html:multiboxproperty="selectedMountains"><bean:writename="mountain"/></html:multibox><%--createthelabel,notethat"br"tagwillformatitvertically--><bean:writename="mountain"/><br/></logic:iterate><br/><html:submit/><html:reset/></html:form><%--somemorehtmlcode,etc...-->
复制代码 注重,我用Struts<bean:message/>标志暗示文本,用<html:multibox/>暗示HTML复选框,用<logic:iterate/>标志在数组中迭代并创立响应内容。我的表单在JSP中经由过程<html:form/>标志被实例化。
下一步是对<logic:iterate/>标志中的mountains字段举行迭代。在这么做的时分,我创立了一个变量(mountain),用它来添补复选框,并用<bean:write/>标志给它一个标签。要在复选框中创立selected属性,我要再次利用<logic:iterate/>和<html:multibox/>标志。<html:multibox/>标志中的property属性由selectedMountains字段添补。当selectedMountains即是mountain时,selectBox就是选中的。
[1][2]下一页
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), |
|