博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Mobile 1.0发布
阅读量:6419 次
发布时间:2019-06-23

本文共 1832 字,大约阅读时间需要 6 分钟。

近日,SpringSource发布了。Spring Mobile包含了Spring MVC的扩展,有助于移动Web应用的开发。

Spring Mobile将服务端的开发模式带到了移动Web开发上来,它能够在服务器端检测设备并赋予开发者根据设备来处理不同内容的能力。这与CSS3 Media Queries和响应式Web设计技术形成了对比,后者的检测与渐进增强都是在客户端完成的。

Spring Mobile具有如下3个主要特性。

设备检测

设备检测是分析HTTP请求以决定发出请求的设备的过程。这通常是通过检测User-Agent头和其他请求头来实现的。在需要区别对待移动与桌面 浏览器的场合下这是非常有用的。要想启用设备检测,请在DispatcherServlet配置中添加 DeviceResolverHandlerInterceptor。

在默认情况下,LiteDeviceResolver用于设备检测,它基于WordPress Mobile Pack的。你可以通过注入一个DeviceResolverHandlerInterceptor构造参数来插入另一个DeviceResolver实现。诸如WURFL等更加复杂的设备检测可以识别出具体的设备能力,比如说屏幕尺寸、制造商、型号以及首选标记。

你可以通过调用DeviceUtils.getCurrentDevice()获得当前的设备,还可以在配置完DeviceWebArgumentResolver之后将当前的Device作为参数传递给某个@Controller方法。

站点首选项管理

用户可以通过站点首选项管理指出他首选的是移动站点抑或常规站点。Spring Mobile的实现位于StandardSitePreferenceHandler中,它支持基于查询参数的站点首选项标识以及可插拔的 SitePreference存储。如果用户没有明确指定SitePreference,那么Spring Mobile会根据用户设备使用一个默认值。指定的站点首选项会存储在SitePreferenceRepository中,默认实现会在客户端 cookie中保存首选项。

要想启用站点首选项管理,请在DispatcherServlet配置中添加SitePreferenceHandlerInterceptor。

用户可以通过单击某个链接提交site_preference查询参数来指定站点首选项。

Normal | Mobile

指定的SitePreference作为一个请求属性,其名字为“currentSitePreference”。你还可以在配置完 SitePreferenceWebArgumentResolver后将当前的SitePreference以参数的形式传递给某个 @Controller方法。

站点切换

站点切换指的是可以根据设备与指定的站点首选项将用户切换至最适合的站点的能力。目前有3个SiteSwitcher实现。“mDot”工厂方法会 构建一个SiteSwitcher,它会将移动用户重定向至m.${DOMAIN}。“dotMobi”工厂方法会构建一个SiteSwitcher,它 会将移动用户重定向至${DOMAIN - TLD}.mobi。“urlPath”工厂方法会构建一个SiteSwitcher,它会将移动用户重定向 至${DOMAIN}/${MOBILE_PATH}。下面的示例介绍了如何配置mDot SiteSwitcher。

感兴趣的读者可以观看这个4分钟的Spring Mobile并阅读来了解更多信息。要想上手,请发布包或是添加Maven依赖。

org.springframework.mobile
spring-mobile-device
1.0.0.RELEASE

Spring Mobile位于GitHub上。

转载地址:http://iclra.baihongyu.com/

你可能感兴趣的文章
五个有趣的拓扑变换问题 [转]
查看>>
asp.net中的比较完美的验证码
查看>>
HDU 3277 Marriage Match III(最大流+二分+并查集)
查看>>
FPSMeter – 简单的、可定制主题的 FPS 仪表库
查看>>
Android应用中使用百度地图API定位自己的位置(二)
查看>>
24点经典算法
查看>>
内核及其组成部分
查看>>
.NET 程序集单元测试工具 SmokeTest 应用指南
查看>>
Linux最大线程数限制及当前线程数查询
查看>>
java枚举使用详解
查看>>
什么是Scrum
查看>>
nginx负载均衡的5种策略
查看>>
90%人都不知道:SVN 和 Git 的一些误解和真相
查看>>
Android Studio NDK开发-其他编译选项
查看>>
关于this的全面解析(上)
查看>>
Python相对导入导致SystemError的解决方案(译)
查看>>
Swift 魔法:公开 Getter,隐藏 Setter
查看>>
[分享]iOS开发-UICollectionViewCell 布局
查看>>
NSURLRequestCachePolicy 缓存策略
查看>>
如何理解LXC与Docker之间的主要区别
查看>>