SpringMVC實現類型轉換(Converter)

數據格式化標籤:
1.在SpringMVC配置文件中配置
2.在目標POJO對象的屬性上加上@NumberFormat 或者 @DateTimeFormat 註解!
@DateTimeFormat
– pattern 屬性:類型爲字符串。指定解析/格式化字段數據的模式, 如:”yyyy-MM-dd hh:mm:ss”
@NumberFormat
–pattern:類型爲 String,自定義樣式, 如patter=”#,###”;

數據類型轉換以及數據格式化標籤:
數據類型轉換【瞭解】
1. 自定義類型轉換器實現Converter

   @Component
            public class EmployeeConverter implements Converter<String, Employee>{
                @Override
                public Employee convert(String source) {    
                    System.out.println(source);
                    if(source != null){
                        String[] vals = source.split("-");
                        if(vals != null && vals.length ==5){
                            String name = vals[0];
                            String email = vals[1];
                            Integer gender = Integer.parseInt(vals[2]);
                            Department department = new Department();
                            department.setId(Integer.parseInt(vals[3]));    
                            Employee employee = new Employee(null, name, email, gender, department);
                            return employee;
                        }
                    }
                    return null;
                }
            }

2.配置自定義轉換器到FormattingConversionServiceFactoryBean工廠中!

<!-- 將ConversionService再作爲annotation-driven的一個屬性存在! -->
            <mvc:annotation-driven conversion-service="conversionService"/>   
<!-- 定義自定義類型轉換器的bean -->
   <bean id="conversionService"
        class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <!-- 這裏是我們自己定義的類型轉換器 -->
                <!-- 注意,這裏首字母要小寫,因爲springmvc幫我們創建bean的時候,是以類名首字母小寫命名 -->
                <ref bean="converter"/>
            </set>
        </property> 
    </bean>

在Controller類中:

@RequestMapping(value="/testView")
    public String testView(@RequestParam("student")Student student){
        System.out.println(student);
        return "view";
    }

前臺頁面中:(form表單)

<form action="${pageContext.request.contextPath }/test/testView" method="post">
    <input type="text" name="student" />
    <input type="submit" value="add"/>
</form><br>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章