Spring-Mobile и Apache-плитки, чтобы помочь использовать общие элементы

Привет, у меня возникла проблема с настройкой Apache тайлов с помощью Spring Mobile. Когда я пытаюсь получить доступ к веб-приложению с мобильного телефона, он не отображает мобильный JSP, который будет в папке для мобильных устройств. Ниже приведен код, который находится в файле конфигурации приложения

AppConfig.Java

package com.sasanka.configuration;

import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver;
import org.springframework.mobile.device.DeviceResolverHandlerInterceptor;
import org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.tiles3.TilesConfigurer;
import org.springframework.web.servlet.view.tiles3.TilesViewResolver;

/**
 * @author M V Prasad
 *
 */
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.sasanka")
public class AppConfig extends WebMvcConfigurerAdapter{

/*  @Bean
    public InternalResourceViewResolver resolver(){
        InternalResourceViewResolver internalResourceViewResolver=new InternalResourceViewResolver();
        internalResourceViewResolver.setPrefix("/WEB-INF/views/");
        internalResourceViewResolver.setSuffix(".jsp");
        //internalResourceViewResolver.setOrder(1);
        return internalResourceViewResolver;

    }*/
    /**
     * Configure TilesConfigurer.
     */
    @Bean
    public TilesConfigurer tilesConfigurer(){
        TilesConfigurer tilesConfigurer = new TilesConfigurer();
        tilesConfigurer.setDefinitions(new String[] {"/WEB-INF/tiles/tiles-defs.xml",
                                                     "/WEB-INF/tiles/homePageViews.xml",
                                                     "/WEB-INF/tiles/lessonViews.xml",
                                                     "/WEB-INF/tiles/mslViews.xml"});
        tilesConfigurer.setCheckRefresh(true);
        return tilesConfigurer;
    }


    @Bean
    public DeviceResolverHandlerInterceptor 
            deviceResolverHandlerInterceptor() {
        return new DeviceResolverHandlerInterceptor();
    }

    @Bean
    public DeviceHandlerMethodArgumentResolver 
            deviceHandlerMethodArgumentResolver() {
        return new DeviceHandlerMethodArgumentResolver();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(deviceResolverHandlerInterceptor());
    }


    /**
     * Configure ViewResolvers to deliver preferred views.
     */
   @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        TilesViewResolver viewResolver = new TilesViewResolver();
        viewResolver.setOrder(0);
        registry.viewResolver(viewResolver);
    }  

@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(deviceHandlerMethodArgumentResolver());
}   
 @Bean
 public LiteDeviceDelegatingViewResolver liteDeviceAwareViewResolver() {
     InternalResourceViewResolver delegate = 
             new InternalResourceViewResolver();
     delegate.setPrefix("/WEB-INF/views/");
     delegate.setSuffix(".jsp");

     LiteDeviceDelegatingViewResolver resolver = 
             new LiteDeviceDelegatingViewResolver(delegate);
     resolver.setOrder(0);
     resolver.setMobilePrefix("mobile/");
     resolver.setTabletPrefix("tablet/");
     return resolver;
 }


    /**
     * Configure ResourceHandlers to serve static resources like CSS/ Javascript etc...
     */

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
        registry.addResourceHandler("/static/**").addResourceLocations("/static/");
    }

}

регулятора,

package com.sasanka.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mobile.device.Device;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.sasanka.beans.UserBean;
import com.sasanka.service.UserService;


@Controller
public class HomeController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = { "/", "/home" }, method = RequestMethod.GET)
    public String home(Model model,Device device) {
          return "home";       
    }

}

0 ответов

Другие вопросы по тегам