JSF f:convertNumber标记

本文概述

  • JSF NumberConverter示例
  • JSF < f:converterNumber> 示例2
它用于将组件(用户输入)数据转换为Java Number类型。你可以通过将convertNumber标记嵌套在component标记内, 将组件的数据转换为java.lang.Number。 convertNumber标记具有几个属性, 可用于指定数据的格式和类型。
下表包含NumberConverter属性:
属性 类型 描述
binding NumberConverter 它用于将转换器绑定到托管bean属性。
currencyCode String 它代表ISO 4217货币代码, 仅在格式化货币时使用。
currencySymbol String 它代表货币符号, 仅在格式化货币时适用。
for String 它与复合组件一起使用。它引用此标记嵌套在其中的复合组件内的对象之一。
groupingUsed Boolean 它指定格式化的输出是否包含分组分隔符。
integerOnly Boolean 它指定是否仅解析值的整数部分。
locale 字符串或语言环境 其数字样式用于格式化或解析数据。
maxFractionDigits int 它用于设置在输出的小数部分中格式化的最大位数。
maxIntegerDigits int 它用于设置在输出的整数部分中格式化的最大位数。
minFractionDigits int 它用于设置在输出的小数部分中格式化的最小位数。
minIntegerDigits int 它用于设置在输出的整数部分中格式化的最小位数。
pattern String 它用于自定义格式设置模式, 该模式确定如何格式化和解析数字字符串。
type String 它用于指定是否将字符串值解析并格式化为数字, 货币或百分比。如果未指定, 则使用数字。
JSF NumberConverter示例 // index.xhtml
< h:form> < h:outputLabel for="username"> User Name< /h:outputLabel> < h:inputText id="user-id" value="http://www.srcmini.com/#{user.name}"/> < br/> < h:outputLabel for="shirtPrice"> Shirt Price< /h:outputLabel> < h:inputText id="shirtPrice-id" value="http://www.srcmini.com/#{user.shirtCost}" autocomplete="off"> < f:convertNumber currencySymbol="$" type="currency"/> < /h:inputText> < br/> < h:commandButton action="response.xhtml" value="http://www.srcmini.com/Submit"/> < /h:form>

// User.java
import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class User { String name; int shirtPrice; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getShirtCost() { return shirtPrice; } public void setShirtCost(int shirtPrice) { this.shirtPrice = shirtPrice; } }

输出:
//索引页
JSF f:convertNumber标记

文章图片
//回应页面
JSF f:convertNumber标记

文章图片
JSF < f:converterNumber> 示例2 在以下示例中, 我们将货币应用模式。可以定制此模式。下表包含一些货币模式示例。
图案 输出量 说明
526894.989 ###, ###.### 526, 894.989 井号(#)表示一个数字, 逗号是分组分隔符的占位符, 句点是十进制分隔符的占位符。
526894.989 ###.## 526894.99 该值在小数点右边有三位数字, 但是模式只有两位。 format方法通过四舍五入来处理此问题。
852.89 000000.000 000852.890 此模式指定前导零和尾随零, 因为使用0字符代替了井号(#)。
52689.98 $###, ###.### $52, 689.98$200 模式中的第一个字符是美元符号($)。请注意, 它紧靠格式化输出中最左边的数字。
52689.98 \ u00A5 ###, ###。### ¥52, 689.98 该模式使用Unicode值00A5指定日元(¥)的货币符号。
// index.xhtml
< h:form> < h:outputLabel for="username"> User Name< /h:outputLabel> < h:inputText id="user-id" value="http://www.srcmini.com/#{user.name}"/> < br/> < h:outputLabel for="shirtPrice"> Shirt Price< /h:outputLabel> < h:inputText id="shirtPrice-id" value="http://www.srcmini.com/#{user.shirtCost}" autocomplete="off"> < /h:inputText> < br/> < h:commandButton action="response.xhtml" value="http://www.srcmini.com/Submit"/> < /h:form>

// User.java
import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class User { String name; int shirtPrice; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getShirtCost() { return shirtPrice; } public void setShirtCost(int shirtPrice) { this.shirtPrice = shirtPrice; } }

// response.xhtml
< h:body> < h1> Hello, < h:outputText value="http://www.srcmini.com/#{user.name}"/> < /h1> < h:outputLabel value="http://www.srcmini.com/Shirt's Price is: "> < /h:outputLabel> < h:outputText value="http://www.srcmini.com/#{user.shirtCost}"> < f:convertNumber pattern="$###" /> < /h:outputText> < /h:body>

输出:
//索引页
JSF f:convertNumber标记

文章图片
【JSF f:convertNumber标记】//回应页面
JSF f:convertNumber标记

文章图片

    推荐阅读