<!---->
描述
对于表单标签,分为两种标签:form标签本身,和所有来包装单个的表单元素的其他标签.form标签本身的行为不同于它内部的元素,这是很重要的.在我们为所有表单标签,包括form标签在内,提供一个参考手册之前,我们必须先描述一些通用的属性.
表单标签 Themes
就像前面我们在Themes and Templates里面提到的,HTML标签(包括表单标签)都是模板驱动的.模板按照form的theme分组.WebWork缺省提供了三种theme:
- simple
- xhtml, 扩展了 simple (缺省theme)
- ajax, 扩展了 xhtml
记住: xhtml theme 输出两列表格. 如果你需要不同的布局,我们强烈推荐你 不要 编写自己的HTML,而是创建自己的theme或者利用simple theme.
使用simple theme的缺点就是它不支持其他theme那么多的属性.例如.label属性在simple theme里没有任何用处.类似的,simple theme提供的功能也远远少于xhtml和ajax theme提供的:自动显示错误信息就不被支持.
通用属性
所有表单标签扩展了 UIBean 类.这个基类有一些通用属性,分为三种:模板相关的,javascript相关的和通用属性.我们不会在这里说明这些属性,而是维护每个标签的参考.然而,熟悉UI标签的结构以及那些属性对所有标签是可用的,也不失为一个好主意.
除了这些属性之外,对于所有表单元素标签存在一个特殊的属性: form(例如: ${parameters.form}). 这代表输出form标签的参数,并且允许你在你的表单元素和表单(form)本身之间进行交互.例如,在一个模板里,你可以通过 ${parameters.form.id} 访问form的ID.
模板相关属性
属性 Theme 数据类型 描述
templateDir | n/a | String | 定义模板目录 |
theme | n/a | String | 定义theme名称 |
template | n/a | String | 定义模板名称 |
Javascript相关属性
属性 Theme 数据类型 描述
onclick | simple | String | html javascript onclick 属性 |
ondbclick | simple | String | html javascript ondbclick 属性 |
onmousedown | simple | String | html javascript onmousedown 属性 |
onmouseup | simple | String | html javascript onmouseup 属性 |
onmouseover | simple | String | html javascript onmouseover 属性 |
onmouseout | simple | String | html javascript onmouseout 属性 |
onfocus | simple | String | html javascript onfocus 属性 |
onblur | simple | String | html javascript onblur 属性 |
onkeypress | simple | String | html javascript onkeypress 属性 |
onkeyup | simple | String | html javascript onkeyup 属性 |
onkeydown | simple | String | html javascript onkeydown 属性 |
onselect | simple | String | html javascript onselect 属性 |
onchange | simple | String | html javascript onchange 属性 |
Tooltip 相关属性
属性 数据类型 缺省值 描述
tooltip | String | none | 设置此组件的tooltip |
tooltipIcon | String | /webwork/static/tooltip/tooltip.gif | tooltip图标的url |
tooltipAboveMousePointer | Boolean | false | 在鼠标光标位置上放置tooltip.另外设置 tooltipOffseY 允许你设置从鼠标光标位置的垂直位移. |
tooltipBgColor | String | #e6ecff | tooltip的背景色. |
tooltipBgImg | String | none | 背景图片. |
tooltipBorderWidth | String | 1 | tooltip边框的宽度. |
tooltipBorderColor | String | #003399 | tooltip边框的背景色 |
tooltipDelay | String | 500 | 显示Tooltip的时间延迟(毫秒). 类似基于操作系统的tooltip的行为. |
tooltipFixCoordinateX | String | not specified | 固定tooltip在指定的X坐标上.例如和tooltipSticky属性结合时很有用. |
tooltipFixCoordinateY | String | not specified | 固定tooltip在指定的Y坐标上.例如和tooltipSticky属性结合时很有用. |
tooltipFontColor | String | #000066 | 字体颜色. |
tooltipFontFace | String | arial,helvetica,sans-serif | 字体,例如 verdana,geneva,sans-serif |
tooltipFontSize | String | 11px | 字体大小,例如 30px |
tooltipFontWeight | String | normal | Font weight. 可以是 normal 或者 bold |
tooltipLeftOfMousePointer | Boolean | false | 在鼠标光标位置左侧的Tooltip位置 |
tooltipOffsetX | String | 12 | 相对鼠标光标位置的水平位移. |
tooltipOffsetY | String | 15 | 相对鼠标光标位置的垂直位移. |
tooltipOpacity | String | 100 | tooltip的透明度. 不透明度是行对透明度而言的.设置的值必须是一个介于0(完全透明)和100(不透明)之间的数字.Opera尚未支持. |
tooltipPadding | String | 3 | 内部间隔,例如,边框和内容之间的空格,例如文字或者图片 |
tooltipShadowColor | String | #cccccc | 使用指定的颜色创建阴影. |
tooltipShadowWidth | String | 5 | 使用指定的宽度(距离)创建阴影. |
tooltipStatic | Boolean | false | 就像基于操作系统的tooltip, tooltip不随着鼠标光标移动而移动. |
tooltipSticky | Boolean | false | tooltip一直停留在它初始的位置,直到另外一个tooltip被激活,或者用户点击了文档. |
tooltipStayAppearTime | String | 0 | 指定一个tooltip消失的时间间隔(毫秒),即时鼠标还在相关的HTML元素上不懂,设置<=0,就和没有定义一样. |
tooltipTextAlign | String | left | 调整包括标题和tooltip内容的文字位置.可以是right, left 或 justify |
tooltipTitle | String | none | 标题 |
tooltipTitleColor | String | #ffffff | title文字的颜色 |
tooltipWidth | String | 300 | tooltip的宽度 |
通用属性
属性 Theme 数据类型 描述
cssClass | simple | String | 定义 html class 属性 |
cssStyle | simple | String | 定义html style 属性 |
title | simple | String | 定义html title 属性 |
disabled | simple | String | 定义html disabled 属性 |
label | xhtml | String | 定义表单元素的label |
labelPosition | xhtml | String | 定义表单元素的label位置(top/left),缺省为left |
requiredposition | xhtml | String | 定义required 标识相对label元素的位置 (left/right),缺省是 right |
name | simple | String | 表单元素的name映射 |
required | xhtml | Boolean | 在label中添加 * (true增加,否则不增加) |
tabIndex | simple | String | 定义html tabindex 属性 |
value | simple | Object | 定义表单元素的value |
什么时候一些属性不起作用(When Some Attributes Don't Apply)
注意有一些标签有一些任何模板都没有使用的属性,可能是没有意义或者是不需要.例如,form标签,支持 tableindex 属性,但是没有一个theme能输出它.同时,就像前面提到的,特定的theme不会利用一些属性.
Value/Name 的关系
在很多标签里,除了form标签,在 name 和 value 属性之间存在一个独特的关系. name 属性用于得到表单元素的名字以及提交时用到.实际上它也是你希望绑定值的表达式.在大多数情况下,它是一个简单的JavaBean属性,例如 "firstName".这会最终调用setFirstName.
类似的,你经常也希望在你的表单元素里显示相同的JavaBean属性的已经存在的数据.现在, value 属性派上了用场. 一个 "%{firstName}"会调用getFirstName来在你的表单里显示它,允许用户编辑这个值并重新提交它.
你可以使用下面的代码,它会工作的很好:
<@ww.form action="updatePerson"> <@ww.textfield label="First name" name="firstName" value="%{firstName}"/> ... </@ww.form>
然而,因为 name 和 value 的关系经常是可预知的,我们会自动为你处理这些,这样做就可以:
<@ww.form action="updatePerson"> <@ww.textfield label="First name" name="firstName"/> ... </@ww.form>
大多数的属性直接使用和属性相同的key暴露给底层的模板,(例如 ${parameters.label}) , value 属性不是这样的. 相反,它可以通过 "nameValue" 主键来访问 (例如 ${parameters.nameValue} ) ,这表示它可能从 name 属性或者是明确地使用 value 属性定义来生成的.
ID Name 设置
所有的表单标签自动为你设置一个 ID. 你可以自由地按照你希望的那样覆盖这个值. ID的设置是这样工作的:
- 对于form,ID被设定为action的名字.在前一个例子中,ID会设置为"updatePerson".
- 对于表单元素,ID为设定为 [form's ID]_[element name]
Required 属性
在很多WebWork UI标签上的"required" 属性只有当你开启了客户端校验并且有一个校验器和特定字段关联时缺省才是true.
Tooltip(工具提示)
每个Form UI组件 (在xhtml/css_xhtml或者其他扩展了它们的theme里) 可以有设置给它们的tooltip.Form组件的tooltip相关的属性一旦定义就会设置给所以在它内部创建的表单UI组件,除非表单元素组件自己明确地在tooltip属性里设定来覆盖.
在例子1中,textfield会从包含它的form中继承 tooltipAboveMousePointer 属性.换句话说,尽管它没有定义一个 tooltipAboveMousePointer 属性,它会从包含它的form的属性中继承过来定义为true的属性.
在例子2中,textfield会从包含它的form继承tooltipAboveMousePointer 和 tooltipLeftOfMousePointer 属性,但是tooltipLeftOfMousePointer 被textfield自己的属性覆盖了.因此,textfield实际上会有一个为定义为true的tooltipAboveMousePointer 属性,从包含它的form中继承而来,具有一个定义为false的tooltipLeftOfMousePointer 属性,因为textfield自己覆盖了这个定义.
例子 3, 4 和5 显示了不同的设置tooltipConfig属性的方法.
- 例子 3:通过param标签的标签体(body)设置 tooltip配置.
- 例子 4:通过param标签的value属性来设置tooltip配置
- 例子 5:通过component标签的tooltipConfig属性来设置 tooltip 配置
例子1
<ww:form tooltipConfig="#{'tooltipAboveMousePointer':'true', 'tooltipBgColor='#eeeeee'}" .... > .... <ww:textfield label="Customer Name" tooltip="Enter the customer name" .... /> .... </ww:form>
例子2
<ww:form tooltipConfig="#{'tooltipAboveMousePointer':'true', 'tooltipLeftOfMousePointer':'true'}" ... > .... <ww:textfield label="Address" tooltip="Enter your address" tooltipConfig="#{'tooltipLeftOfMousePointer':'false'}" /> .... </ww:form>
例子3
<ww:textfield label="Customer Name" tooltip="One of our customer Details'"> <ww:param name="tooltipConfig"> tooltipWidth = 150 | tooltipAboveMousePointer = false | tooltipLeftOfMousePointer = false </ww:param> </ww:textfield>
例子4
<ww:textfield label="Customer Address" tooltip="Enter The Customer Address" > <ww:param name="tooltipConfig" value="#{'tooltipStatic':'true', 'tooltipSticky':'true', 'tooltipAboveMousePointer':'false', 'tooltipLeftOfMousePointer':'false'}" /> </ww:textfield>
例子5
<ww:textfield label="Customer Telephone Number" tooltip="Enter customer Telephone Number" tooltipConfig="#{'tooltipBgColor':'#cccccc', 'tooltipFontColor':'#eeeeee', 'tooltipAboveMousePointer':'false', 'tooltipLeftOfMousePointer':'false'}" />
表单标签参考手册
| 有一点很重要值得注意,所有的插入某些内容到valuestack里的标签(例如i18n或者bean标签)会在标签结束时移除这些对象.这意味着如果你实例化了一个bean使用bean标签 (<ww:bean name="'br.univap.fcc.sgpw.util.FormattersHelper'">) ,这个bean会一直在valuestack里可以使用,直到</ww:bean>标签出现. |
- checkbox - 输出一个复选框
- checkboxlist - 输出一个复选框列表
- combobox - 输出一个部件,可以从下拉框的内容填充一个文本框
- datepicker - 输出一个日期选择不见,使用了 JavaScript 和 DOM
- doubleselect - 输出一个双选下拉框部件,第二个下拉框依赖第一个
- head - 输出对应theme的HEAD部分的内容,例如 CSS 和 JavaScript 引用
- file - 输出一个文件选择框
- form - 输出一个form(表单)
- hidden - 输出一个hidden表单字段
- label - 输出一个 label
- optiontransferselect- 输出一个选项移动下拉组件,主要是两个下拉框和用来在两个下拉框之间移动选项的按钮.
- password - 输出一个密码输入框
- radio - 输出一个单选框
- reset - 输出一个reset表单按钮
- richtexteditor - 输出一个富文本编辑器
- select - 输出一个下拉框
- submit - 输出一个submit按钮
- textarea - 输出一个文本输入区域(textarea)
- textfield - 输出一个文本输入框
- token - 输出一个隐藏的字段来防止多次提交表单
- updownselect - 输出一个下拉框组件,带有上下按钮来移动下拉框组件的元素
<!---->
相关推荐
在Struts2中,表单标签是用于构建用户界面的重要组件,它们帮助开发者创建交互式和动态的网页。这篇博客将深入探讨Struts2中的表单标签及其使用方法。 首先,我们需要理解Struts2表单标签的基本结构。通常,一个...
在Struts2中,表单标签是用于处理用户输入和展示数据的关键组件,它们使得视图层的构建更加简洁和高效。本示例将深入探讨Struts2的表单标签使用方法,帮助开发者更好地理解和应用这些标签。 首先,我们来了解一些...
在Struts2中,表单标签是其核心组件之一,用于处理用户输入并展示数据。与传统的HTML表单标签相比,Struts2的表单标签提供了更多的功能和灵活性,能够更好地集成到MVC架构中。 1. **表单标签的基本结构**: Struts...
首先,Struts2的表单标签主要分为两种类型:简单表单标签(s:textfield, s:password, s:textarea等)和复杂表单标签(s:form, s:submit, s:checkbox, s:radio等)。这些标签都是基于OGNL(Object-Graph Navigation ...
### Struts2 表单标签简介与实例 #### 一、引言 在Web应用程序的开发过程中,表单是用户与系统交互的重要组成部分。Struts2框架为了简化表单的处理,提供了一系列丰富的表单标签,这些标签不仅包含了常见的HTML表单...
Struts2表单标签支持Ajax提交,可以实现无刷新页面更新。 5. **结果标签**:如`s:url`、`s:a`等,用于创建链接和重定向。这些标签能够更好地处理动作结果,增强页面导航功能。 6. **主题和皮肤标签**:Struts2提供...
三、Struts2表单标签 1. `s:textfield`: 创建输入文本框,与Action类中的属性绑定。例如,`<s:textfield name="email" label="Email" />`将创建一个电子邮件输入框,并将输入的值绑定到email属性。 2. `s:textarea`...
这份“truts2表单标签共46页.pdf.zip”压缩文件显然包含了详细讲解Struts2表单标签的资料,共计46页,是学习和掌握Struts2表单处理的宝贵教程。 Struts2的核心之一就是它的标签库,这些标签极大地简化了视图层的...
struts2 标签库介绍(html)对Struts2的标签做了详细的介绍让你轻松掌握Struts2的标签。 STRUTS2学习文档.pdf 对Struts2的一些配置文件进行了详细的说明。 Struts2―表单验证validate(html)对validate的type属性...
在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 1. **Struts2核心标签库**: - `s...
Struts2 标签库(IBM资料)Struts2标签库概述; Struts2数据标签; Struts2控制标签; Struts2表单标签; Struts2非表单标签
5.6 Struts2非表单标签简介 115 5.6.1 主题和模板介绍 116 5.6.2 非表单标签介绍 119 5.7 Struts2自定义标签实现图形验证功能 121 第6章 Struts2非JSP视图技术 125 6.1 velocity视图技术使用介绍 125 6.2 freemarker...
例如,使用Struts 2的表单标签可以快速创建表单,例如: ``` 用户名"/> 密码"/> 登录"/> ``` 这段代码创建了一个简单的登录表单,并使用Struts 2的标签来生成表单控件。 如果您想了解更多关于Struts 2标签的...
除了表单相关的标签外,Struts2还提供了一些非表单标签,用于实现更复杂的功能,例如: 1. **`<s:property>`**:用于输出值栈中的值。 2. **`<s:i18n>`**:支持国际化。 3. **`<s:iterator>`**:用于迭代集合或数组...
Struts2表单标签的应用实例。 主要功能是在一个页面提交个人信息之后跳转到另一个页面显示之前所提交的个人信息。具体介绍和功能演示请移步我的博客: http://blog.csdn.net/qq_33171970/article/details/51380991
4. **表单标签(form、textfield、textarea、password)** 这些标签用于创建HTML表单和输入元素。例如: ```jsp ``` `action`属性指定提交时调用的Action,`name`属性对应Action中的属性,`label`属性...
首先,了解Struts2的标签库分为两个主要部分:动作标签和数据标签。动作标签主要用于处理业务逻辑,如表单提交、重定向等,而数据标签则专注于显示和格式化数据,如循环、条件判断、显示字段等。 1. 动作标签: - ...
- 使用`<s:form>`标签替代HTML的`<form>`,因为Struts2的表单标签可以自动处理请求参数和错误信息。 - 结合OGNL表达式,如`<s:property value="%{#session.username}" />`,可以方便地访问各种上下文对象。 - 在...
UI标签主要包括表单标签和非表单标签。表单标签用于生成HTML表单元素,如`<s:textfield>`用于创建输入框,`<s:submit>`用于创建提交按钮。非表单标签则用于生成如树形结构、Tab页等复杂的界面元素。例如,`<s:tree>`...
- **5.6 Struts2非表单标签简介** - **知识点**: 介绍了其他类型的标签。 - **核心内容**: - 包括主题和模板的支持。 - 这些标签有助于提高页面的布局灵活性和美观度。 - **5.7 Struts2自定义标签实现图形验证...