使用spring-boot检测移动设备

时间:2016-05-24 23:37:22

标签: spring-boot spring-mobile

我正在尝试让我的应用程序检测移动设备并呈现该页面,但我没有得到任何响应,但我的index.html页面正在呈现。它完全忽略了我的移动控制器。

@Controller
public class DeviceDetection {

    @RequestMapping("/")
    public @ResponseBody String detectDevice(Device device) {

        if (device.isNormal()) {
            System.out.println("Inside isNormal()");
            return "index";

        } else if (device.isMobile()) {
            System.out.println("Inside isMobile()");
            return "mobilePage";
        } else if (device.isTablet()) {
            return "mobilePage";
        }
        return "index";
    }

}

的pom.xml

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mobile</artifactId>
        </dependency>

enter image description here

1 个答案:

答案 0 :(得分:0)

spring-boot-mobile需要设置其他属性才能检测到您的Device

该属性为spring.mobile.devicedelegatingviewresolver.enabled: true

以下是默认目录结构:

        resources
        └── templates
            └── greeting.html
            └── mobile
                └── greeting.html
            └── tablet
                └── greeting.html

在您的情况下,您需要正确映射模板。

Spring Boot spring-mobile属性以自定义行为:

spring.mobile.devicedelegatingviewresolver.enable-fallback=false - 启用对后备解析的支持。

spring.mobile.devicedelegatingviewresolver.enabled=false - 启用设备视图解析程序

spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/ - 前缀可用于查看移动设备的名称。

spring.mobile.devicedelegatingviewresolver.mobile-suffix= - 附加到移动设备的视图名称的后缀。

spring.mobile.devicedelegatingviewresolver.normal-prefix= - 前缀可用于查看普通设备的名称。

spring.mobile.devicedelegatingviewresolver.normal-suffix= - 附加到普通设备的视图名称的后缀。

spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ - 用于查看平板电脑设备名称的前缀。

spring.mobile.devicedelegatingviewresolver.tablet-suffix= - 附加到平板电脑设备视图名称的后缀。

spring.mobile.sitepreference.enabled=true - 启用SitePreferenceHandler。

此外,我会将@RequestMapping("/")更改为其他内容。