在本质上,JSF 转换器是 Java™ NumberFormat 和 DateFormat 类的 JavaScript 实现以及 MaskFormat 的实现。这些转换器在使用这些类中某个类格式化的字符串与 JavaScript 类型化值之间进行转换。
其他 JWL 组件在执行字段验证、输入辅助和管理客户端数据时,也将使用 JSF 转换器。自行编写客户端验证代码的开发者也会发现 JSF 转换器非常有用,例如,如果对两个“数字”字段值进行比较,则可使用 JSF 转换器将这些值转换成 JavaScript 成员。
<script> hX_5.addConverter("2", new hX_5.DateTimeConverter("strict:1", "icu4j", "epoch:i", "format:yyyy/MM/dd G")); </script>
<script> var c = hX_5.getConverterById("2"); var v = document.getElementById("TestField"); if (c!=null && v!= null) { var dt = c.stringToValue(v.value); if (dt!=null) { alert ("JavaScript object: " + dt); } else { alert ("Failed: " + c.lastError()); } } </script>
<h:inputText styleClass="inputText" id="text1" size="6" value="#{myBean.myBigDecimal01}"> <f:convertNumber pattern="##0.0"/> <hx:inputHelperSpinner delta="0.1"/> <hx:inputHelperAssist validation="true" errorClass="inputText_Error"/> <f:validateDoubleRange minimum="-100.0" maximum="100.0"></f:validateDoubleRange> </h:inputText>
<script> var cID = hX_5.getBehaviorById("form1:text1", "validate", "onblur").getAttribute("converter"); var cvt = hX_5.getConverterById(cID); </script>
每个转换器都是使用 JavaScript 构造函数进行构造,并通过 addConverter 调用添加到页面中。
id |
指定给此转换器的 ID。此 ID 在页面(或门户网站)中的所有已创建转换器中都必须是唯一的。可以将任何字符串值用作此 ID。 |
name |
JSF 组件的名称。 |
属性 |
逗号分隔的属性列表,其中每个属性都是一个加引号的字符串,此字符串包含使用冒号分隔的属性名称和值,例如,"label:MyLabel"。 |
要获取转换器对象:
id |
指定给此转换器的 ID。此 ID 在页面(或门户网站)中的所有已创建转换器中都必须是唯一的。可以将任何字符串值用作此 ID。 |
将字符串转换为 JavaScript 对象:
cvt |
转换器对象 |
string |
要转换的字符串 |
returns |
类型为转换器(数字、日期时间或字符串)的 JavaScript 对象。如果不能完成转换,则将返回 NULL 并设置 lastError。 |
将 JavaScript 对象转换为字符串:
cvt |
转换器对象 |
value |
类型为转换器(数字、日期/时间或字符串)的 JavaScript 对象。 |
returns |
类型为转换器(数字、日期时间或字符串)的 JavaScript 对象。如果不能完成转换,则将返回 NULL 并设置 lastError。 |
检索有关上次转换失败原因的信息:
cvt |
转换器对象 |
returns |
类型为转换器(数字、日期时间或字符串)的 JavaScript 对象。如果不能完成转换,则将返回 NULL 并设置 lastError。 |
更改转换器的属性:
cvt |
转换器对象 |
arg |
JSF 属性/值字符串。 |
获取转换器的属性:
cvt |
转换器对象 |
argname |
包含属性的名称的字符串。 |
returns |
类型为转换器(数字、日期时间或字符串)的 JavaScript 对象。如果不能完成转换,则将返回 NULL 并设置 lastError。 |
转换器 |
描述 |
---|---|
NumberConverter | 在包含 Java 格式化数字的字符串与 JavaScript 数字对象之间进行转换 |
DateTimeConverter | 在包含 Java 格式化日期/时间的字符串与 JavaScript 日期对象之间进行转换 |
MaskConverter | 在包含 Java 格式化带掩码字符串的字符串与 JavaScript 字符串对象之间进行转换 |