Как применить перехватчик spring-mobile-device к welcome-файлу?
Я использую SpringMVC и у меня разный дизайн для каждого типа устройства: Рабочий стол / Планшет / Мобильный
<!-- START of MOBILE -->
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean
class="org.springframework.mobile.device.site.SitePreferenceWebArgumentResolver" />
<bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>
<mvc:interceptors>
<!-- Resolve the device which has generated the request -->
<bean
class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
<!-- User's site preference -->
<bean
class="org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor" />
<!-- Redirects users to the device specific site -->
<bean
class="org.springframework.mobile.device.switcher.SiteSwitcherHandlerInterceptor"
factory-method="urlPath">
<constructor-arg value="/m" />
<constructor-arg value="/t" />
<constructor-arg value="/" />
</bean>
</mvc:interceptors>
<!-- Device aware view resolving -->
<bean id="liteDeviceDelegatingViewResolver"
class="org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver">
<constructor-arg>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</constructor-arg>
<property name="mobilePrefix" value="m/" />
<property name="tabletPrefix" value="t/" />
<property name="normalPrefix" value="/" />
<property name="enableFallback" value="true" />
</bean>
<!-- END of MOBILE -->
У меня есть папки /m /t и / folder в папке /WEB-INF/views/ для каждого устройства, и все работает нормально, но эта конфигурация применяется не только к странице приветствия, т.е. я открываю страницу с помощью телефона и вижу настольную версию имени входа.jsp (/WEB_INF/views/login.jsp, но не /WEB-INF/views/m/login.jsp)
<welcome-file-list>
<welcome-file>/WEB-INF/views/login.jsp</welcome-file>
</welcome-file-list>
Что я должен сделать, чтобы изменить это исправить.
1 ответ
Только не указывайте страницу... и обрабатывайте домашний запрос от контроллера:)
измените ваш web.xml на:
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
или просто удалите тег
Теперь ваш HomeController должен выглядеть так:
@Controller
public class HomeController {
@RequestMapping("/")
public String home(SitePreference sitePreference, Model model) {
return "login";
}
}
надеюсь это поможет.