30.3. <w:calcNumberField>

CalcNumberField是一个提供数字输入的文本框,内置一个强大的客户端计算器,对输入数字提供了非常方便的方式。

30.3.1. 构件信息

表 30.5. 构件信息

Component Typeorg.operamasks.faces.component.form.impl.UICalcNumberField
Component Familyjavax.faces.Input
Component Classorg.operamasks.faces.component.form.impl.UICalcNumberField
Tag Classorg.operamasks.faces.webapp.form.UICalcNumberFieldTag
Renderer Typeorg.operamasks.faces.component.form.impl.UICalcNumberField
Renderer Class(AJAX)org.operamasks.faces.render.widget.ajax.AjaxCalcNumberFieldRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UIOutput

+++++javax.faces.component.UIInput

++++++org.operamasks.faces.component.form.base.UIFieldBase

+++++++org.operamasks.faces.component.form.impl.UIField

++++++++org.operamasks.faces.component.form.base.UITextFieldBase

+++++++++org.operamasks.faces.component.form.impl.UITextField

++++++++++org.operamasks.faces.component.form.base.UICalcNumberFieldBase

+++++++++++org.operamasks.faces.component.form.impl.UICalcNumberField

30.3.2. 属性

表 30.6. 属性

allowBlank 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许为空 (默认是true)
allowDecimals 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许输入小数(默认是true)
allowNegative 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许输入负数 (默认是true)
alwaysSubmit 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
构件是否总是提交,与readOnly,disabled属性结合使用。 当一个输入组件的readOnly或disabled设为true时,它的值无法提交到后台。 但如果同时将alwaysSubmit设为true,则它的值可以提交到后台
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
blankText 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当设置不允许为空而文本框的内容是空的时候,出错提示的内容
clientValidate 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否进行客户端校验
cls 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的css样式类名
converter 定义类 javax.faces.component.UIOutput
类型 java.lang.String
是否必须 延时求值
构件注册的转换器
converterMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件中值转换失败时,构件的提示信息
disabled 定义类 org.operamasks.faces.component.form.base.UIFieldBase
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否设置为disabled(默认值:false),disabled属性设置为true后,需设置alwaysSubmit="true",页面值才会提交
emptyClass 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当文本框内容为空时的样式(默认是'x-form-empty-field')
emptyText 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当文本框内容为空时显示的文本(默认是null)
fieldClass 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
field的默认样式(默认值:"x-form-field")
fieldLabel 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的label
focusClass 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当field收到焦点时的样式(默认值:"x-form-focus")
hidden 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否可见。
hideLabel 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否完全隐藏构件的label(默认值:false)
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
immediate 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
如果该属性设置为true,该构件的校验和转换就会在应用请求值阶段进行,反之,在处理验证阶段执行
initConfig 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
初始化对象,取值可以是ExtConfig对象, 或String,表示一个JavaScript对象,比如:{"a": "avalue", "b":true, "c":200, "d":"var::dvalue"} 如果取值是表示一个JavaScript对象的String,则key必须用(双)引号包起来,比如"a"。
invalidClass 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当field被标记为invalid时的样式(默认值:"x-form-invalid")
jsvar 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
客户端脚本使用的javascript变量名,使用此变量名可以在客户端脚本中引用构件对应的客户端对象
labelSeparator 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
显示在label后面的分隔符(默认值:':')。
labelStyle 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
field的label的CSS样式(默认值:如果设置了父容器的labelStyle就使用父容器的labelStyle,否则为'')
maskRe 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
用来限制用户输入的字符类型的正则表达式,只有敲入的字符符合正则表达式时,才显示出来 (默认是null)
maxLength 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
当文本框内容的最大长度
maxLengthText 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当文本框内容的长度大于设置的最大长度值时,出错提示的内容
maxText 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当最大值验证失败时,出错提示的内容
maxValue 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
允许输入的最大值 (默认是 Number.MAX_VALUE)
minLength 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
文本框内容的最小长度 (默认是0)
minLengthText 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当文本框内容的长度小于设置的最小长度值时,出错提示的内容
minText 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当最小值验证失败时,出错提示的内容
minValue 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
允许输入的最小值 (默认是 Number.NEGATIVE_INFINITY)
msgTarget 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
错误信息文本的显示位置
nanText 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当输入的值不是一个数字类型(如:'abcd'),出错提示的内容
onblur 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onblur事件发生(构件失去输入焦点时触发)时执行的JavaScript代码
onchange 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onchange事件发生(内容改变时触发)时执行的JavaScript代码
ondisable 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的ondisable事件发生(构件变为无效时触发)时执行的JavaScript代码
onenable 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onenable事件发生(构件变为有效时触发)时执行的JavaScript代码
onfocus 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onfocus事件发生(构件获取焦点时触发)时执行的JavaScript代码
onhide 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onhide事件发生(构件隐藏时触发)时执行的JavaScript代码
onkeydown 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onkeydown事件发生(键盘按下时触发)时执行的JavaScript代码
onkeypress 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onkeypress事件发生(键盘按下时触发)时执行的JavaScript代码
onkeyup 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onkeyup事件发生(键盘抬起时触发)时执行的JavaScript代码
onshow 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的onshow事件发生(构件显示时触发)时执行的JavaScript代码
readOnly 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否在HTML中将field标识为readOnly(默认值:false),readOnly属性设置为true后,需设置alwaysSubmit="true",页面值才会提交。此属性暂不支持w:simpleHtmlEditor、w:radioGroup、w:checkBoxGroup
regex 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
用于验证时测试域值的一个JavaScript RegExp对象,允许使用Perl风格的语法。如果提供了该属性值,这个正则表达式仅当基本Ext验证器都返回true时被调用,调用时会传给它当前的域值。如果测试失败,这个域将用regexText指定的文本标记为不合法
regexText 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
regex属性校验失败后,出错提示的内容
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
required 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
构件是否不允许提交空值
requiredMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当requried属性为真,构件如果提交了空值导致校验失败时构件的提示信息
requiredTrim 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
构件进行required校验时是否将输入的值作trim操作后校验
selectOnFocus 定义类 org.operamasks.faces.component.form.impl.UITextField
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
当获得焦点的时候,选中所有文本(默认是false)
style 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染后最外层DOM元素的样式。
styleClass 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染后最外层DOM元素的样式类名。若有多个,以空格分隔。
tabIndex 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
当用户使用tab键时页面上构件获得焦点的顺序索引
tooltip 定义类 org.operamasks.faces.component.form.base.UIFieldBase
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
鼠标经过时的弹出信息。
triggerClass 定义类 org.operamasks.faces.component.form.impl.UICalcNumberField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
给触发的按钮增加的额外css样式,触发的按钮通常是使用 'x-form-trigger' 和 'triggerClass' 2个样式的并集 (默认是 'x-form-calc-trigger' ,显示的是一个计算器的图标)
validateEvents 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件客户端校验发生的时机
validator 定义类 javax.faces.component.UIInput
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
指定一个校验器id或用EL表达式指定一个校验方法。引擎使用该校验器对用户输入进行有效性校验
validatorMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
校验失败时的提示信息
value 定义类 javax.faces.component.UIInput
类型 java.lang.String
是否必须 延时求值
构件的当前值
valueChangeListener 定义类 javax.faces.component.UIInput
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
该属性为一个EL表达式(MethodBinding),表示当值改变时响应事件的方法。表达式所指定的方法必须是void valueChange(javax.faces.event.ValueChangeEvent)形式
width 定义类 org.operamasks.faces.component.form.impl.UIField
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件的宽度,以象素为单位。

30.3.3. 构件API

30.3.3.1. UIField(Field构件公共基类)

表 30.7. 常用方法

enable 方法签名 public void enable()
参数说明 无参数
返回值 无返回值
方法描述 将构件设置为可用。
disable 方法签名 public void disable()
参数说明 无参数
返回值 无返回值
方法描述 将构件设置为不可用。
show 方法签名 public void show()
参数说明 无参数
返回值 无返回值
方法描述 显示构件。
hide 方法签名 public void hide()
参数说明 无参数
返回值 无返回值
方法描述 隐藏构件。
focus 方法签名 public void focus()
参数说明 无参数
返回值 无返回值
方法描述 当前构件获得焦点。

30.3.4. 示例

下面的例子介绍了w:calcNumberField的用法,它的"value"属性绑定了后台DemoBean的"number(Integer类型)"属性,然后在客户端进行校验,数字必须在1和100之间。

<w:form>
    在1和100之间选择一个数字:
    <w:calcNumberField minValue="1" maxValue="100" value="#{DemoBean.number}"></w:calcNumberField>
    <w:button value="确定" />
</w:form>