Spring Web MVC:如何根据客户端请求更改viewResolver前缀

阿尼尔·库玛·潘迪(Anil Kumar Pandey)

我的WEB-INF目录中有两个文件夹,第一个是views与桌面网站相关的模板文件,第二个是mobile_views与移动网站模板。我正在使用WebConfiguration类文件并定义所需的@Bean功能。现在我想viewResolver.setPrefix(viewFolderName)根据要求更改如果用户通过手机访问该网站,则将其设置为mobile_views否则views因此,我正在检测设备浏览器并设置,viewFolderName但似乎只能运行一次,因为WebConfiguration在服务器启动时会访问类,因此这就是我要面对的问题。这是我的代码,请为此提供一些解决方案。

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass( JstlView.class );
    if(isRequestFromMobile()) viewResolver.setPrefix("/WEB-INF/mobile_views/");
    else viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");
    return viewResolver;
}

private @Autowired HttpServletRequest request;
private boolean isRequestFromMobile() {
    String userAgent = request.getHeader("User-Agent");
    String httpAccept = request.getHeader("Accept");
    UAgentInfo detector = new UAgentInfo(userAgent, httpAccept);
    System.out.println("### User Agent: "+userAgent);
    if (detector.detectMobileQuick()) {
        return true;
    }
    return false;
}
Geoand

Spring的站点上看一下依赖于Spring Boot的教程。

关键是您需要配置DeviceResolverHandlerInterceptorDeviceHandlerMethodArgumentResolver

完成后,您可以使用控制器方法的Device参数来区分处理方式,具体取决于设备

从这一点出发,要采取的进一步措施是按照以下方式进行集成LiteDeviceDelegatingViewResolver(由Spring Mobile提供):

@Bean
public LiteDeviceDelegatingViewResolver liteDeviceAwareViewResolver() {
    InternalResourceViewResolver delegate = 
            new InternalResourceViewResolver();
    delegate.setPrefix("/WEB-INF/views/");
    delegate.setSuffix(".jsp");
    LiteDeviceDelegatingViewResolver resolver = 
            new LiteDeviceDelegatingViewResolver(delegate);
    resolver.setMobilePrefix("mobile/");
    resolver.setTabletPrefix("tablet/");
    return resolver;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Restful Web API中的@RequestBody不接受来自请求为JSON的客户端的请求

来自分类Dev

Spring Web Service客户端XwsSecurityInterceptor afterCompletion异常

来自分类Dev

Spring Boot Web服务客户端认证

来自分类Dev

Spring Integration Web Service客户端不起作用

来自分类Dev

IntelliJ + Spring Web MVC

来自分类Dev

Spring Web Flux web客户端一一收不到值

来自分类Dev

Spring Cloud Feign客户端可以与Spring Web Controller共享接口吗?

来自分类Dev

如何验证来自MVC客户端的Web API调用

来自分类Dev

Spring Web Socket-从MQ侦听器通知客户端

来自分类Dev

Spring Web Services客户端和服务器-找不到端点映射

来自分类Dev

适用于Web和移动客户端的Spring REST API

来自分类Dev

客户端发送的请求在语法上不正确。-Spring MVC + JDBC模板

来自分类Dev

客户端发送的请求在spring mvc,ajax中在语法上不正确

来自分类Dev

如何获得Tornado Web套接字请求的客户端IP?

来自分类Dev

使用HTTPretty模拟扭曲的Web客户端HTTP请求

来自分类Dev

IBM Integration Bus Web 服务客户端请求

来自分类Dev

如何使用Spring Boot Web客户端过帐内容类型为application / x-www-form-urlencoded的Form数据的请求

来自分类Dev

如何根据条件订阅特定主题,在Spring中限制单足客户端的数量?

来自分类Dev

Spring WS客户端发送HTTPS请求

来自分类Dev

使用Jersey客户端对Spring Security Web应用程序进行身份验证时,我怎么了?

来自分类Dev

Web客户端Android

来自分类Dev

Web客户端Android

来自分类Dev

Spring REST Web服务:错误的请求

来自分类Dev

是否不可能在客户端永久更改客户端的Web代码?

来自分类Dev

如何在POSTAL MVC中而不在WEB.Config中设置SMTP客户端

来自分类Dev

如何扩展我的Web应用程序框架(MVC)以服务于移动客户端?

来自分类Dev

Spring Web MVC:HTTP DELETE的请求正文不再可用

来自分类Dev

ActiveMQ Spring客户端:如何更改处理器池?

来自分类Dev

如何通过Spring MVC将工作线程的响应发布到客户端?

Related 相关文章

  1. 1

    Spring Restful Web API中的@RequestBody不接受来自请求为JSON的客户端的请求

  2. 2

    Spring Web Service客户端XwsSecurityInterceptor afterCompletion异常

  3. 3

    Spring Boot Web服务客户端认证

  4. 4

    Spring Integration Web Service客户端不起作用

  5. 5

    IntelliJ + Spring Web MVC

  6. 6

    Spring Web Flux web客户端一一收不到值

  7. 7

    Spring Cloud Feign客户端可以与Spring Web Controller共享接口吗?

  8. 8

    如何验证来自MVC客户端的Web API调用

  9. 9

    Spring Web Socket-从MQ侦听器通知客户端

  10. 10

    Spring Web Services客户端和服务器-找不到端点映射

  11. 11

    适用于Web和移动客户端的Spring REST API

  12. 12

    客户端发送的请求在语法上不正确。-Spring MVC + JDBC模板

  13. 13

    客户端发送的请求在spring mvc,ajax中在语法上不正确

  14. 14

    如何获得Tornado Web套接字请求的客户端IP?

  15. 15

    使用HTTPretty模拟扭曲的Web客户端HTTP请求

  16. 16

    IBM Integration Bus Web 服务客户端请求

  17. 17

    如何使用Spring Boot Web客户端过帐内容类型为application / x-www-form-urlencoded的Form数据的请求

  18. 18

    如何根据条件订阅特定主题,在Spring中限制单足客户端的数量?

  19. 19

    Spring WS客户端发送HTTPS请求

  20. 20

    使用Jersey客户端对Spring Security Web应用程序进行身份验证时,我怎么了?

  21. 21

    Web客户端Android

  22. 22

    Web客户端Android

  23. 23

    Spring REST Web服务:错误的请求

  24. 24

    是否不可能在客户端永久更改客户端的Web代码?

  25. 25

    如何在POSTAL MVC中而不在WEB.Config中设置SMTP客户端

  26. 26

    如何扩展我的Web应用程序框架(MVC)以服务于移动客户端?

  27. 27

    Spring Web MVC:HTTP DELETE的请求正文不再可用

  28. 28

    ActiveMQ Spring客户端:如何更改处理器池?

  29. 29

    如何通过Spring MVC将工作线程的响应发布到客户端?

热门标签

归档