Spring中的@NumberFormat注解

本文详细介绍了SpringMVC中@NumberFormat注解在数据类型转换中的应用,包括其pattern和style属性的使用,以及通过实例展示如何实现整数、百分比和货币格式化的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@NumberFormat 注解的作用

负责输入输出数据的格式化工作,如将数据转换成特定的货币类型格式,百分比类型格式等

  • pattern:类型 String,使用自定义的数字格式化串,如 ##,### 表示 50,000
  • style:类型 NumberFormat.Style,几个常用值
    • Style.CURRENCY:货币类型
    • Style.NUMBER:正常数字类型
    • Style.PERCENT:百分比类型

使用示例

先写个 index.html,分别测试整数、百分数、货币类型

<!DOCTYPE html>
<html>
<head>
    <title>Spring MVC的数据类型转换</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="resources/jquery-3.1.0.js"></script>
    <script type="text/javascript" src="resources/json2.js"></script>
    
</head>
    <body>
        <form action="register" method="post">
            整数类型:<input type="text" name="total" /> <br><br>
            百分数类型:<input type="text" name="discount" /><br><br>
            货币类型:<input type="text" name="money" /><br><br>
                <input type="submit" value="提交" />
        </form>
    </body>
</html>

实体类 User,注解就加在该类的实例变量上

public class User {
    
    @NumberFormat(style=Style.NUMBER,pattern="#,###")    
    private int total;
    
    @NumberFormat(style=Style.PERCENT)
    private double discount;
    
    @NumberFormat(style=Style.CURRENCY)
    private double money;
}

controller

@Controller
public class UserController {
    
    @RequestMapping("/register")
    public String register(User user,Model model){
        model.addAttribute("user", user);
        return "result";
    }
}

result.jsp 页面

<%@page pageEncoding="utf-8" 
        contentType="text/html;charset=utf-8" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试AnnotationFormatterFactory</title>
</head>
<body>
<h3>测试表单数据格式化</h3>
<form:form modelAttribute="user" method="post" action="" >
<table>
    <tr>
        <td>整数类型:</td>
        <td><form:input path="total"/></td>
    </tr>
    <tr>
        <td>百分数类型:</td>
        <td><form:input path="discount"/></td>
    </tr>
    <tr>
        <td>货币类型:</td>
        <td><form:input path="money"/></td>
    </tr>
</table>
</form:form>
</body>
</html>

输入

在这里插入图片描述
输出

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值