0

我试图让我的应用程序检测移动设备并呈现该页面,但我没有得到任何响应,但我的 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>

在此处输入图像描述

4

1 回答 1

1

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

该物业是spring.mobile.devicedelegatingviewresolver.enabled: true

以下是默认目录结构:

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

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

用于自定义行为的Spring Bootspring-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("/")别的东西。

于 2016-05-25T02:32:46.267 回答