




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.5 Struts2 表单标签简介 如果有对 HTML 比较熟悉的读者,肯定知道诸如 select 、 chekbox 这些 HTML 标签的使用方式。这些标签其实是可以归类为表单标签。在 Struts2 中除了这些基本的 HTML 标签的定义外,它还定义了许多特殊的但又基于前述这些 HTML 表单标签的个性化标签。这些表单标签各具特色,是很值得介绍的。在开发中负责 view 层功能开发的开发人员如果使用这些标签,就能发现 Struts2 提供了多么丰富的 view 层功能。 5.5.1 基础表单标签使用介绍 技术要点 本节代码具体介绍各个基础表单标签的使用方式。这些标签其实都可以用 HTML 的表单标签来实现。读者可以了解 Struts2 的这部分表单标签和原有 HTML 表单标签实现功能几乎是相同的。 基础表单标签使用。 基础表单标签功能演示。 演示代码 基础表单标签的 JSP 文件: Java代码 1. 2. 3. 4. 5. 6. 7. 基础表单标签使用范例(可使用HTML标签替代) 8. 9. 10. checkbox标签使用范例 11. 12. 13. 14. 15. 16. 17. checkboxlist标签使用范例 18. 19. 20. 22. 23. 24. file标签使用范例 25. 26. 27. 28. 29. 30. 31. select标签使用范例 32. 33. 34. 36. 37. 38. optgroup标签使用范例 39. 40. 41. 43. 44. 45. 48. 49. 50. 51. 52. 53. 54. 55. radio标签使用范例 56. 57. 58. 59. 60. 61. 64. 65. 66. 67. 68. 69. textarea标签使用范例 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. textfield标签使用范例 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. password标签使用范例 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 基础表单标签使用范例(可使用HTML标签替代) checkbox标签使用范例 checkboxlist标签使用范例 file标签使用范例 select标签使用范例 optgroup标签使用范例 radio标签使用范例 textarea标签使用范例 textfield标签使用范例 password标签使用范例 功能演示如图 5.18 和图 5.19 。 图 5.18 基础表单标签范例图 1 图 5.19 基础表单标签范例图 2 代码解释 ( 1 ) checkbox 标签的功能是显示一个可以让用户选择的复选框。其中 label 属性是显示复选框在页面上的选择项名字。 name 是定义该复选框的名字。而 value 属性则是表示是否选中。其中如果为“ true ”则表示被选中,在页面上该复选框中则会以“”显示。反之则复选框中为空。 ( 2 ) checkboxlist 标签的功能是根据一个数据集合来显示多个可以让用户选择的复选框。其中 label 属性是显示复选框在页面上的选择项名字。 List 是来指定数据集合,它实际上是一个 map 类型的数据集合。默认情况下,它的 key 就赋值给 value 属性,它自己的 value 则对应页面上显示的复选框内容。在代码中笔者向读者表示了基本的 checkboxlist 用法。它还有两个可以不写的属性,一个是 listKey ,它指定了集合中哪个属性作为复选框的 value 。另外一个属性为 listValue ,该属性指定集合中哪个属性作为在页面上显示的复选框内容。 ( 3 ) file 标签 的功能是显示文件上传的输入框。该标签 在前面文件上传下载章节的代码中有过记述。这里重新记述,除了让读者加深理解之外,还向读者记述它的 accept 属性。该属性限定了上传的文件类型,文件类型的表示在前面章节也已说明。如果读者在 file 标签中上传了非 accept 属性指定的文件类型,则表单提交时候会报错。 ( 4 ) select 标签的功能是提供一个下拉框。其中 list 属性也是指定一个数据集合,以 map 或 list 类型显示。如果是 map 类型,则 key 和 value 可以显示指定为下拉框中每个元素的值。集合中数据就是下拉框中的内容。 headerKey 和 headerValue 属性是表明下拉框缺省显示的值和内容。 listKey 和 listValue 属性则和 checkboxlist 标签中相同,都是表明值和在页面上显示的内容。它还有一个 multiple 属性,代码中笔者没有显示给读者看,它是表明下拉框中内容是否可以多选即同时选中下拉框中多项元素。 ( 5 ) optgroup 标签的功能是配合 select 标签,在下拉框中显示一个选项组。它在页面上显示和 select 标签相同。所不同的是下拉框中选择内容的显示。读者请看图 5.20 和 5.21 。 图 5.20 select 标签下拉框内容 图 5.21 select 和 optgroup 标签联合使用中下拉框内容 它的 list 属性其实就是指定了选择组中的内容。在该示例中就是显示了“材料品牌”这个选项组。选中“材料品牌”即表明下面两个品牌内容都被选中。 ( 6 ) radio 标签 的功能是显示一个单选框。它的属性和 checkboxlist 标签属性相同。 ( 7 ) textarea 标签的功能是显示一个文本输入框。它的 label 和 name 属性和之前标签属性相同。它还有 rows 和 cols 两个属性,这两个属性表示该文本输入框的行数和每行允许显示字数多少。 ( 8 ) textfield 标签的功能是显示一个单行文本输入框。在之前章节有很多代码示例。这里就不多记述了。 ( 9 ) password 标签的功能是显示一个输入密码的文本输入框。它输入的文字都不会显式的显示在页面上。而是用“”来显示。 复杂表单标签使用介绍 技术要点 本节代码具体介绍各个复杂表单标签的使用方式。这些标签在不使用 Struts2 的情况下都是用基础表单标签和 JavaScript 代码联合起来使用才能达到这些标签的效果。 复杂表单标签使用。 复杂表单标签功能演示。 演示代码 使用 doubleselect 和 optiontransferselect 标签需要显示的材料类别类文件代码: Java代码 1. 2. 3. publicclassItemimplementsjava.io.Serializable 4. privateintitemId; 5. privateStringitem; 6. 7. 8. publicintgetItemId() 9. returnitemId; 10. 11. 12. publicvoidsetItemId(intitemId) 13. this.itemId=itemId; 14. 15. 16. publicStringgetItem() 17. returnthis.item; 18. 19. 20. publicvoidsetItem(Stringitem) 21. this.item=item; 22. 23. public class Item implements java.io.Serializable private int itemId; private String item; public int getItemId() return itemId; public void setItemId(int itemId) this.itemId = itemId; public String getItem() return this.item; public void setItem(String item) this.item = item; 使用 doubleselect 和 optiontransferselect 标签需要显示的材料类文件代码: Java代码 1. 2. 3. publicclassMaterialimplementsjava.io.Serializable 4. privateintmaterialId; 5. privateintitemid; 6. privateStringmaterial; 7. 8. 9. publicintgetMaterialId() 10. returnthis.materialId; 11. 12. 13. publicvoidsetMaterialId(intmaterialId) 14. this.materialId=materialId; 15. 16. 17. 18. publicStringgetMaterial() 19. returnthis.material; 20. 21. 22. publicvoidsetMaterial(Stringmaterial) 23. this.material=material; 24. 25. public class Material implements java.io.Serializable private int materialId; private int itemid; private String material; public int getMaterialId() return this.materialId; public void setMaterialId(int materialId) this.materialId = materialId; public String getMaterial() return this.material; public void setMaterial(String material) this.material = material; 使用 doubleselect 和 optiontransferselect 标签是的 Action 文件代码: Java代码 1. 2. 3. publicclassComplexFormTagActionextendsActionSupport 4. /级联第一个下拉框数据 5. privateListitemList; 6. /级联第二个下拉框数据 7. privateMapInteger,ListmaterialMap; 8. /左边材料数据 9. privateStringleftMaterials; 10. /右边材料数据 11. privateStringrightMaterials; 12. 13. publicStringexecute()throwsException 14. itemList=newArrayList(); 15. /循环新建10个类别 16. for(intj=0;j10;j+) 17. Itemitem=newItem(); 18. item.setItemId(j+1); 19. item.setItem(类别+(j+1); 20. itemList.add(item); 21. 22. 23. materialMap=newHashMapInteger,List(); 24. /循环新建每个类别中的10个材料 25. for(intj=0;j10;j+) 26. ListmaterialList=newArrayList(); 27. for(inti=0;i+材料+(i+1); 32. materialList.add(material); 33. 34. materialMap.put(j+1),materialList); 35. 36. 37. inttempCount; 38. ArrayListleftList=newArrayList(); 39. 40. for(inti=0;i10;i+) 41. MaterialleftMaterial=newMaterial(); 42. leftMaterial.setMaterialId(i+1); 43. leftMaterial.setMaterial(材料+(i+1); 44. leftList.add(leftMaterial); 45. 46. tempCount=10; 47. ArrayListrightList=newArrayList(); 48. 49. for(inti=0;i10;i+) 50. MaterialrightMaterial=newMaterial(); 51. rightMaterial.setMaterialId(i+1); 52. rightMaterial.setMaterial(材料+(tempCount+i+1); 53. rightList.add(rightMaterial); 54. 55. 56. getRequest().setAttribute(rightList,rightList); 57. 58. getRequest().setAttribute(leftList,leftList); 59. 60. returnSUCCESS; 61. 62. 63. privateHttpServletRequestgetRequest() 64. returnServletActionContext.getRequest(); 65. 66. 67. publicMapInteger,ListgetMaterialMap() 68. returnmaterialMap; 69. 70. 71. publicvoidsetMaterialMap(MapInteger,ListmaterialMap) 72. this.materialMap=materialMap; 73. 74. 75. 76. publicStringgetRightMaterials() 77. returnrightMaterials; 78. 79. 80. publicvoidsetRightMaterials(StringrightMaterials) 81. this.rightMaterials=rightMaterials; 82. 83. public class ComplexFormTagAction extends ActionSupport / 级联第一个下拉框数据 private List itemList; / 级联第二个下拉框数据 private MapInteger, List materialMap; / 左边材料数据 private String leftMaterials; / 右边材料数据 private String rightMaterials; public String execute() throws Exception itemList = new ArrayList(); / 循环新建 10 个类别 for (int j = 0; j 10; j+) Item item = new Item(); item.setItemId(j + 1); item.setItem( 类别 + (j + 1); itemList.add(item); materialMap = new HashMapInteger, List(); / 循环新建每个类别中的 10 个材料 for (int j = 0; j 10; j+) List materialList = new ArrayList(); for (int i = 0; i + 材料 +(i + 1); materialList.add(material); materialMap.put(j + 1), materialList); int tempCount; ArrayList leftList = new ArrayList(); for (int i = 0; i 10; i+) Material leftMaterial = new Material(); leftMaterial.setMaterialId(i + 1); leftMaterial.setMaterial( 材料 + (i + 1); leftList.add(leftMaterial); tempCount = 10; ArrayList rightList = new ArrayList(); for (int i = 0; i 10; i+) Material rightMaterial = new Material(); rightMaterial.setMaterialId(i + 1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级化学上册 第1单元《课题1 物质的变化和性质》教学设计 (新版)新人教版
- 五年级信息技术上册 孙悟空变变变教学设计 冀教版
- 上册教案(教案)-2024-2025学年三年级上册劳动浙教版
- 人教部编版九年级下册12 词四首综合与测试教学设计
- 初中主题班会“文明礼仪伴我行”教学设计
- 防性侵安全教育主题
- 五年级品德与社会上册 请你相信我 1教学设计 人教新课标版
- 财务咨询公司业务培训
- 2024中铝智能科技发展有限公司面向社会公开招聘5人(第十五批)笔试参考题库附带答案详解
- 2024中铁大桥局集团武汉置业发展有限公司春季校园招聘笔试参考题库附带答案详解
- 川教版生命生态安全一年级上册第12课 做一个受欢迎的人 教学设计
- 油气输送管道高后果区识别与评价释义
- 高价值专利挖掘布局
- 边防支队综合指挥平台可行性研究报告暨初步设计方案-2
- 市政管网一体化泵站吊装施工方案
- GB/T 32434-2015塑料管材和管件燃气和给水输配系统用聚乙烯(PE)管材及管件的热熔对接程序
- GA/T 486-2015城市道路单向交通组织原则
- FZ/T 62034-2016磁性软纱门
- 《物权法(第四版)》第八章 用益物权及特许物权
- 硬件开发流程图
- DBJ50∕T-356-2020 智慧工地建设与评价标准
评论
0/150
提交评论