使用Spring Boot来检测移动设备 [英] Detecting a mobile device with spring-boot
问题描述
我正在尝试让我的应用程序检测移动设备并呈现该页面,但是没有任何响应,但我的index.html页面正在呈现.它完全忽略了我的移动控制器.
I am trying to get my application to detect a mobile device and render that page but I am getting no response but my index.html page is rendering. It is completely ignoring my mobile controller.
@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>
推荐答案
spring-boot-mobile
需要设置其他属性才能检测您的Device
.
spring-boot-mobile
requires additional property to be set in order to detect your Device
.
该属性为spring.mobile.devicedelegatingviewresolver.enabled: true
以下是默认目录结构:
resources
└── templates
└── greeting.html
└── mobile
└── greeting.html
└── tablet
└── greeting.html
根据您的情况,您需要正确映射模板.
In your case you need to map your templates correctly.
Spring Boot spring-mobile
属性以自定义行为:
Spring Boot spring-mobile
properties to customize behavior:
spring.mobile.devicedelegatingviewresolver.enable-fallback=false
-启用对后备分辨率的支持.
spring.mobile.devicedelegatingviewresolver.enable-fallback=false
- Enable support for fallback resolution.
spring.mobile.devicedelegatingviewresolver.enabled=false
-启用设备视图解析器
spring.mobile.devicedelegatingviewresolver.enabled=false
- Enable device view resolver
spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/
-用于查看移动设备名称的前缀.
spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/
- Prefix that gets prepended to view names for mobile devices.
spring.mobile.devicedelegatingviewresolver.mobile-suffix=
-后缀添加到移动设备的视图名称.
spring.mobile.devicedelegatingviewresolver.mobile-suffix=
- Suffix that gets appended to view names for mobile devices.
spring.mobile.devicedelegatingviewresolver.normal-prefix=
-用于查看普通设备名称的前缀.
spring.mobile.devicedelegatingviewresolver.normal-prefix=
- Prefix that gets prepended to view names for normal devices.
spring.mobile.devicedelegatingviewresolver.normal-suffix=
-后缀添加到普通设备的视图名称上.
spring.mobile.devicedelegatingviewresolver.normal-suffix=
- Suffix that gets appended to view names for normal devices.
spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/
-用于查看平板电脑设备名称的前缀.
spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/
- Prefix that gets prepended to view names for tablet devices.
spring.mobile.devicedelegatingviewresolver.tablet-suffix=
-后缀添加到平板电脑设备的视图名称.
spring.mobile.devicedelegatingviewresolver.tablet-suffix=
- Suffix that gets appended to view names for tablet devices.
spring.mobile.sitepreference.enabled=true
-启用SitePreferenceHandler.
spring.mobile.sitepreference.enabled=true
- Enable SitePreferenceHandler.
我还要将@RequestMapping("/")
更改为其他内容.
Also I would change @RequestMapping("/")
to something else.
这篇关于使用Spring Boot来检测移动设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!