轉(zhuǎn)換器
轉(zhuǎn)換器在客戶端和服務(wù)器之間轉(zhuǎn)換數(shù)據(jù).
下面這些轉(zhuǎn)換器有單獨(dú)章節(jié)介紹
Array Converter
Bean and Object Converters
Collection Converter
Enum Converter
DOM Objects
Hibernate整合
Servlet Objects (HttpServletRequest, HttpSession, etc)
基礎(chǔ)的轉(zhuǎn)換器
原生類型,String,像BigDecimal這樣的簡(jiǎn)單對(duì)象的轉(zhuǎn)換器已經(jīng)有了。你不需要在dwr.xml中<allow>部分的<convert>中定義。它們默認(rèn)支持。
默認(rèn)支持的類型包括: boolean, byte, short, int, long, float, double, char, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Character, java.math.BigInteger, java.math.BigDecimal 和 java.lang.String
Date轉(zhuǎn)換器
Date轉(zhuǎn)換器負(fù)責(zé)在Javascript的Date類型與Java中的Date類型(java.util.Date, java.sql.Date, java.sql.Times or java.sql.Timestamp)之間進(jìn)行轉(zhuǎn)換。同基礎(chǔ)的轉(zhuǎn)換器一樣,DateConverter默認(rèn)是支持的。
如果你有一個(gè)Javascript的字符串 (例如"01 Jan 2010") ,你想把它轉(zhuǎn)換成Java的Date類型有兩個(gè)辦法:在javascript中用Date.parse()把它解析成Date類型,然后用DWR的DateConverter傳遞給服務(wù)器;或者把它作為字符串傳遞給Server,再用Java中的SimpleDateFormat(或者類似的)來解析。
同樣,如果你有個(gè)Java的Date類型并且希望在HTML使用它。你可以先用SimpleDateFormat把它轉(zhuǎn)換成字符串再使用。也可以直接傳Date給Javascript,然后用Javascript格式化。第一種方式簡(jiǎn)單一些,盡管浪費(fèi)了你的轉(zhuǎn)換器,而且這樣做也會(huì)是瀏覽器上的顯示邏輯受到限制。其實(shí)后面的方法更好,也有一些工具可以幫你,例如:
The Javascript Toolbox Date formatter
Web Developers Notes on Date formatting
其他對(duì)象
其實(shí)創(chuàng)建自己的轉(zhuǎn)換器也很簡(jiǎn)單。Converter接口的Javadoc包含了信息。其實(shí)這種需要很少出現(xiàn)。在你寫自己的Converter之前先看看BeanConverter,它有可能就是你要的。