SpingMVC类型转换
生活随笔
收集整理的這篇文章主要介紹了
SpingMVC类型转换
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
框架內(nèi)部做了類型轉(zhuǎn)換工作,將String轉(zhuǎn)換成Int,但是默認(rèn)類型轉(zhuǎn)換器并不是可以將用戶提交的String轉(zhuǎn)換為用戶需要的類型,此時(shí)就需要自定義類型轉(zhuǎn)換器了
下邊我自定義一個(gè)日期類型的轉(zhuǎn)換器? 才認(rèn)識(shí)能否將前臺(tái)輸入的string在后臺(tái)轉(zhuǎn)換成date類型? 并且輸出到控制臺(tái)
定義一個(gè)控制器類? 參數(shù)和前臺(tái)jsp頁面上的參數(shù)進(jìn)行自動(dòng)裝配
@Controller public class FirstController @RequestMapping("/first")public String doFirst(String username, int age, Date birthday){System.out.println(username);System.out.println(age);System.out.println(birthday);return "suecssful";} }定義一個(gè)轉(zhuǎn)換器
//Converter是一個(gè)泛型接口 s帶原始類型 t代表目標(biāo)類型 所以這里是String和datepublic class TypeDate implements Converter<String,Date> {public Date convert(String str) {SimpleDateFormat sdf = getDate(str);try {return sdf.parse(str);} catch (ParseException e) {e.printStackTrace();}return null;}public SimpleDateFormat getDate(String str) {
SimpleDateFormat sdf=null;
//通過正則去和前臺(tái)輸入的格式進(jìn)行匹配 只要符合正則表達(dá)式的規(guī)則 就可以轉(zhuǎn)換if(Pattern.matches("^\\d{4}-\\d{2}-\\d{2}$",str)){sdf=new SimpleDateFormat("yyyy-MM-dd");}if(Pattern.matches("^\\d{4}/\\d{2}/\\d{2}$",str)){sdf=new SimpleDateFormat("yyyy/MM/dd");}if(Pattern.matches("^\\d{4}\\d{2}\\d{2}$",str)){sdf=new SimpleDateFormat("yyyyMMdd");}return sdf;} }
xml配置文件的書寫
<context:component-scan base-package="day13"></context:component-scan><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean><!--定義一個(gè)轉(zhuǎn)換器--><bean id="myDateType" class="day13.TypeDate"></bean><!--注冊(cè)一個(gè)轉(zhuǎn)換器服務(wù)--><bean id="conversionService2" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters" ref="myDateType"></property></bean><!--注解驅(qū)動(dòng)管理一個(gè)轉(zhuǎn)換服務(wù)--><mvc:annotation-driven conversion-service="conversionService2"></mvc:annotation-driven>前臺(tái)頁面的定置:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head><title>Title</title> </head> <body> <form action="/first" method="post">姓名:<input name="username" value="${username}"><br>年齡:<input name="age"><br>出生日期:<input name="birthday"><br><input type="submit" value="提交"> </form> </body> </html>配置完成!? 控制臺(tái)打印date類型的日期?
?
轉(zhuǎn)載于:https://www.cnblogs.com/1234AAA/p/8681145.html
總結(jié)
以上是生活随笔為你收集整理的SpingMVC类型转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++试题2
- 下一篇: C++11 Lambda