이번 디지털365치과의원 홈페이지를 제작하며 모바일 페이지에 대해 정리합니다.
모바일 페이지 구분을 위해 디바이스를 구분해주는 라이브러리가 있었습니다.
스프링 모바일 디바이스 입니다.
순서는 메이븐을 추가해주시고요.
<!-- 모바일 페이지 디바이스 구분 -->
<dependency>
<groupId>org.springframework.mobile</groupId>
<artifactId>spring-mobile-device</artifactId>
<version>1.1.5.RELEASE</version>
</dependency>
web.xml에
<!-- 스프링 모바일 -->
<filter>
<filter-name>deviceResolverRequestFilter</filter-name>
<filter-class>org.springframework.mobile.device.DeviceResolverRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>deviceResolverRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
필터를 추가합니다.
servlet-context.xml에 이부분을 수정 추가 합니다.
<!-- 스프링 모바일부분. -->
<annotation-driven>
<argument-resolvers>
<beans:bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" />
<beans:bean class="org.springframework.mobile.device.site.SitePreferenceWebArgumentResolver" />
</argument-resolvers>
</annotation-driven>
구분
<beans:bean class="org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver">
<beans:constructor-arg>
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
</beans:constructor-arg>
<beans:property name="mobilePrefix" value="mobile/" />
<beans:property name="tabletPrefix" value="mobile/" />
<beans:property name="enableFallback" value="true"/>
</beans:bean>
구분
<interceptors>
<beans:bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor"></beans:bean>
<beans:bean class="org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor"></beans:bean>
</interceptors>
이러면 경로가 pc의 경우 views/home.jsp 기존대로 호출되구요.
모바일이나 태블릿의 경우 view/mobile/home.jsp로 호출됩니다. 중간에 mobile가 붙죠 ^^
기존 주소 그대로 호출되고 pc와 모바일이 분리되고 컨트롤러는 같이 쓰고 개발이 편리한것 같습니다.