一、什么是注解驱动的属性格式化?
--在bean的属性中设置,SpringMVC处理 方法参数绑定数据、模型数据输出时自动通过注解应用格式化的功能。
二、注解类型
1.DateTimeFormat
@DateTimeFormat注解可以对java.util.Date、java.util.calenda等时间类型的属性进行标注。
DateTimeFormat最常用的属性就是 pattern,类型为String,使用自定义的时间格式化字符串,如yyyy-MM-dd
2.NumberFormat
@NumberFormat可以对类似数字类型的属性进行标注,它拥有两个互斥的属性。
*pattern。类型为String,使用自定义的数字格式化串,如#,###
*style。类型是NumberFormat.Style,它有几个常用的可选值:
CURRENCY:货币类型 NUMBER:正常数字类型
PERCENT:百分数类型
实例:
1.导入所需jar包
2.在web.xml配置前端控制器
<!-- 配置springmvc的前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
3.编写一个实体类
package com.dj.pojo; import java.io.Serializable; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.NumberFormat; import org.springframework.format.annotation.NumberFormat.Style; public class User implements Serializable{ //日期类型 @DateTimeFormat(pattern="yyyy-MM-dd") private Date birthday; //正常数据类型 @NumberFormat(style=Style.NUMBER,pattern="#,###") private int total; //百分数类型 @NumberFormat(style=Style.PERCENT) private double discount; //货币类型 @NumberFormat(style=Style.CURRENCY) private double money; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public double getDiscount() { return discount; } public void setDiscount(double discount) { this.discount = discount; } public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } } 4.编写一个controller
package com.dj.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.dj.pojo.User; @Controller public class UserController { /** * 动态跳转页面 * @param pagename * @return */ @RequestMapping(value="/{pagename}") public String index(@PathVariable String pagename){ return pagename; } /** * 跳转到显示格式化后数据的页面 * @param user * @param model * @return */ @RequestMapping(value="/test",method=RequestMethod.POST) public String test(@ModelAttribute User user,Model model){ model.addAttribute("user",user); return "success"; } } 5.编写一个测试的表单页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="test" method="post"> 日期类型:<input type="text" id="birthday" name="birthday"/><br> 整数类型:<input type="text" id="total" name="total"/><br> 百分数类型:<input type="text" id="discount" name="discount"/><br> 货币类型:<input type="text" id="money" name="money"/><br> <input type="submit" value="提交"/> </form> </body> </html> 6.编写一个测试显示格式化后的数据的页面。如果希望在视图页面中将模型数据以格式化的方式进行渲染,则需要使用spring的页面标签。
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <form:form modelAttribute="user" method="post" action=""> 日期类型:<form:input path="birthday"/><br> 整数类型:<form:input path="total"/><br> 百分数类型:<form:input path="discount"/><br> 货币类型:<form:input path="money"/><br> </form:form> 7.最后编写配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- spring可以自动去扫描base-package下面的包或者子包下面的java类 如果扫描到有spring相关注解的类,则吧这个类注册为spring的bean --> <context:component-scan base-package="com.dj.controller" /> <!-- 默认装配 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix"> <value>/</value> </property> <!-- 后缀 --> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> 8.最后进行测试
测试成功!
转载于:https://www.cnblogs.com/dj-blog/p/7534907.html
相关资源:Spring MVC通过添加自定义注解格式化数据的方法