JSF 2 convertNumber示例

在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.演示

如果用户填写了无效的数字格式,则显示错误消息。

jsf2-ConvertNumber-Example-1

用户输入“ 0.01 ”值,然后单击“提交”按钮。

jsf2-ConvertNumber-Example-2

以不同的显示格式显示提交的值。

jsf2-ConvertNumber-Example-3

下载源代码

下载它– JSF-2-ConvertNumber-Example.zip (10KB)

参考

  1. JSF 2 convertNumber JavaDoc
  2. Wiki ISO 4217当前代码
  3. DecimalFormat JavaDoc

翻译自: https://mkyong.com/jsf2/jsf-2-convertnumber-example/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值