我正在尝试让我的应用程序检测移动设备并呈现该页面,但我没有得到任何响应,但我的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>
答案 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("/")
更改为其他内容。