锁定老帖子 主题:Struts2讲义21
精华帖 (4) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-10
5.5 Struts2 表单标签简介如果有对 HTML 比较熟悉的读者,肯定知道诸如 select 、 chekbox 这些 HTML 标签的使用方式。这些标签其实是可以归类为表单标签。在 Struts2 中除了这些基本的 HTML 标签的定义外,它还定义了许多特殊的但又基于前述这些 HTML 表单标签的个性化标签。这些表单标签各具特色,是很值得介绍的。在开发中负责 view 层功能开发的开发人员如果使用这些标签,就能发现 Struts2 提供了多么丰富的 view 层功能。 5.5.1 基础表单标签使用介绍技术要点本节代码具体介绍各个基础表单标签的使用方式。这些标签其实都可以用 HTML 的表单标签来实现。读者可以了解 Struts2 的这部分表单标签和原有 HTML 表单标签实现功能几乎是相同的。 基础表单标签使用。 基础表单标签功能演示。 演示代码基础表单标签的 JSP 文件: <!------------------文件名:basicFormTag.jsp---------------> <%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%> <%@ taglib prefix="s" uri="/struts-tags"%> ……… <body> <h3 align="left"> 基础表单标签使用范例(可使用HTML标签替代) </h3> <h3 align="left"> checkbox标签使用范例 </h3> <p> <s:checkbox label="别墅" name="bieshu" value="true" /> <s:checkbox label="公寓" name="gongyu" /> </p> <h3 align="left"> checkboxlist标签使用范例 </h3> <p> <s:checkboxlist label="材料" list="{'进户门套油漆', '踢脚线', '大理石', '吊顶'}" name="material" /> </p> <h3 align="left"> file标签使用范例 </h3> <p> <s:file name="file" accept="text/*" /> <s:file name="file" accept="image/jpeg"></s:file> </p> <h3 align="left"> select标签使用范例 </h3> <p> <s:select label="下拉框示例" name="material" headerKey="0" headerValue=" " list="#{'01':'进户门套油漆','02':'踢脚线','03':'大理石','04':'吊顶'}" /> </p> <h3 align="left"> optgroup标签使用范例 </h3> <p> <s:select label="示例" name="material" headerKey="0" headerValue=" " list="#{'01':'进户门套油漆','02':'踢脚线','03':'大理石','04':'吊顶'}" > <s:optgroup label="材料品牌" list="#{'01':'多乐士超易洗','02':'绿太阳'}"/> </s:select> </p> <h3 align="left"> radio标签使用范例 </h3> <p> <s:radio label="材料" list="{'进户门套油漆', '踢脚线', '大理石', '吊顶'}" name="material"/> </p> <h3 align="left"> textarea标签使用范例 </h3> <p> <s:textarea label="输入文本" labelposition="left" name="textarea" cols="40" rows="10"/> </p> <h3 align="left"> textfield标签使用范例 </h3> <p> <s:textfield label="输入文本" name="textfield" size="40" maxlength="10"/> </p> <h3 align="left"> password标签使用范例 </h3> <p> <s:password label="输入密码" name="password" size="20" maxlength="8"/> </p> </body> </html>
功能演示如图 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 标签的功能是显示一个输入密码的文本输入框。它输入的文字都不会显式的显示在页面上。而是用“●”来显示。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-12
写的很详细,不错,但我碰到的所有的struts2的项目,只有一个是用jsp,里面使用了部分标签(主要是取值用的),像表单这样的标签都是尽量使用的HTML,其它项目都是使用的freemarker,推荐使用freemarker,简单高效,真的很不错
|
|
返回顶楼 | |
发表时间:2009-10-12
sunjun 写道 写的很详细,不错,但我碰到的所有的struts2的项目,只有一个是用jsp,里面使用了部分标签(主要是取值用的),像表单这样的标签都是尽量使用的HTML,其它项目都是使用的freemarker,推荐使用freemarker,简单高效,真的很不错 对的。我后面章节里有介绍freemarker的。这里是采取由浅入深方式来介绍。主要是为初学者服务。一下子都上,初学者不一定能消化。 |
|
返回顶楼 | |
发表时间:2009-10-12
struts2的标签基本不用,只用jstl
|
|
返回顶楼 | |
发表时间:2009-10-12
ognl表达式在struts2中很好,jstl也很好,不知道企业到底用的最多的是那一种表达式。 |
|
返回顶楼 | |
发表时间:2009-10-12
这些貌似都是struts2用作宣传的吧,实际项目中很少用的,如果用了的话,跟struts2耦合就高了.....
还是比较钟情于JSTL... |
|
返回顶楼 | |
发表时间:2009-10-13
MrLee23 写道 这些貌似都是struts2用作宣传的吧,实际项目中很少用的,如果用了的话,跟struts2耦合就高了.....
还是比较钟情于JSTL... 老实说,当年struts1时候我也没用它的标签。 |
|
返回顶楼 | |
发表时间:2009-10-13
struts1我也用jstl,struts2用freemarker.
|
|
返回顶楼 | |
发表时间:2009-10-20
感谢楼主!
LZ写的很好,比市场上卖的书籍好很多哦。。。 非常盼望楼主能对freemarker或者dwr做深入的讲解。。。 |
|
返回顶楼 | |
发表时间:2009-10-20
timeroading 写道 感谢楼主!
LZ写的很好,比市场上卖的书籍好很多哦。。。 非常盼望楼主能对freemarker或者dwr做深入的讲解。。。 dwr我没用过啊,不好意思不能帮上什么。 |
|
返回顶楼 | |