SpringMVC的数据格式化-注解驱动的属性格式化

来源:互联网 发布:mysql删除唯一约束 编辑:程序博客网 时间:2024/06/05 03:56

一、什么是注解驱动的属性格式化?

--在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;@Controllerpublic 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.最后进行测试





测试成功!



阅读全文
0 0
原创粉丝点击