在JSF中,“ f:convertNumber ”是一个标准转换器,它将String转换为指定的“ Number”格式。 另外,它还用作验证器,以确保输入值是有效数字。 请参阅以下常用示例:
注意 :假设#{receipt.amount}包含一个“ 0.1 ”值。
1. minFractionDigits属性
<h:outputText value="#{receipt.amount}" >
<f:convertNumber minFractionDigits="2" />
</h:outputText>
将值显示为“ 0.10”。
2.模式属性
<h:outputText value="#{receipt.amount}" >
<f:convertNumber pattern="#0.000" />
</h:outputText>
将值显示为“ 0.100”。
注意
模式格式在java.text.DecimalFormat中定义。
3. currencyCode属性
<h:outputText value="#{receipt.amount}" >
<f:convertNumber currencyCode="GBP" type="currency" />
</h:outputText>
将值显示为“ GBP0.10”。
注意
currencyCode在ISO 4217中定义。 要使用currencyCode属性,必须将type属性更改为“ currency ”。
4. type =“百分比”属性
<h:outputText value="#{receipt.amount}" >
<f:convertNumber type="percent" />
</h:outputText>
将值显示为“ 10%”。
PS对于其他“ f:convertNumber”属性,可以访问此JSF“ f:convertNumber” JavaDoc 。
JSF f:convertNumber示例
以下JSF 2.0完整示例向您展示了如何使用“ f:convertNumber ”标记。
1.托管豆
一个简单的托管bean,具有“ amount”属性。
package com.mkyong;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="receipt")
@SessionScoped
public class ReceiptBean implements Serializable{
double amount;
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
}
2. f:convertNumber示例
JSF XHTML页面使用“ f:convertNumber ”标签进行验证,并使用String格式化程序。
default.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:body>
<h1>JSF 2 convertNumber example</h1>
<h:form>
<h:panelGrid columns="3">
Amount :
<h:inputText id="amount" value="#{receipt.amount}"
size="20" required="true"
label="Amount" >
<!-- display in at least 2 decimal points -->
<f:convertNumber minFractionDigits="2" />
</h:inputText>
<h:message for="amount" style="color:red" />
</h:panelGrid>
<h:commandButton value="Submit" action="receipt" />
</h:form>
</h:body>
</html>
receive.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:body>
<h1>JSF 2 convertNumber example</h1>
<ol>
<li>
Amount [minFractionDigits="2"] :
<h:outputText value="#{receipt.amount}" >
<f:convertNumber minFractionDigits="2" />
</h:outputText>
</li>
<li>
Amount [pattern="#0.000"] :
<h:outputText value="#{receipt.amount}" >
<f:convertNumber pattern="#0.000" />
</h:outputText>
</li>
<li>
Amount [currencySymbol="$"] :
<h:outputText value="#{receipt.amount}">
<f:convertNumber currencySymbol="$" type="currency" />
</h:outputText>
</li>
<li>
Amount [currencyCode="GBP"] :
<h:outputText value="#{receipt.amount}" >
<f:convertNumber currencyCode="GBP" type="currency" />
</h:outputText>
</li>
<li>
Amount [type="percent"] :
<h:outputText value="#{receipt.amount}" >
<f:convertNumber type="percent" />
</h:outputText>
</li>
</ol>
</h:body>
</html>
3.演示
如果用户填写了无效的数字格式,则显示错误消息。
用户输入“ 0.01 ”值,然后单击“提交”按钮。
以不同的显示格式显示提交的值。
下载源代码
下载它– JSF-2-ConvertNumber-Example.zip (10KB)