最近在开发FX Trading的Dashboard的时候,发现用到的一些Bootstrap的样式在手机上的显示效果很不好,而且每笔trade包含的信息也比较多,用手机看实在是不方便,于是就萌生了做一版针对mobile的想法。
Spring Mobile还在1.0的beta版的时候就有了解过,但当时的版本还比较简陋,有些功能都不够完整,其实现在也都比较简单,总共也没多少代码,不过也足以解决mobile相关的一些问题了。Spring Mobile是基于Spring MVC的,如果你的项目本身使用的就是Spring MVC,那基本没多少额外的工作量。我们的项目就是基于Spring MVC的,现在也只是想增加针对mobile的展示,所以controller都可以重用,只需做一些针对mobile的页面就可以了。
Spring Mobile实现的功能主要包括以下四块,也都是配置一下就可以使用了,所以你只需要专注于页面的展示。
Device Resolution
访问设备的识别,默认采用LiteDeviceResolver作为实现,通过分析HTTP Header来进行识别,如User-Agent,Accept等。
若是一些特殊的User-Agent被识别成了mobile,可以将这些特殊的User-Agent的关键字定义为一个List
每个request被处理之前,将会先识别设备类型Device,然后保存在request的currentDevice参数中。