-
[Mobile] Spring 으로 구현Developer/Mobile 2013. 3. 5. 16:12
필요 jar
spring-mobile-device-1.0.1.RELEASE.jar
예제 소스
1.context 추가
<mvc:interceptors>
<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
<mvc:interceptor>
<mvc:mapping path="/*" />
<bean id="SessionInterceptor" class="com.homework.test.interceptor.SessionInterceptor" />
</mvc:interceptor>
</mvc:interceptors><bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="do" value="text/html" />
<entry key="json" value="application/json" />
<entry key="atom" value="application/atom+xml" />
</map>
</property><property name="viewResolvers">
<list>
<!-- view resolver mobile 겸용 -->
<bean id="jspViewResolver" class="com.homework.test.resolver.MobileCustomViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="true" />
</bean>
</list>
</property>
</bean>2. 자바 소스
public class MobileCustomViewResolver extends InternalResourceViewResolver{
protected static final Log logger = LogFactory.getLog(MobileCustomViewResolver.class);@Override
protected AbstractUrlBasedView buildView(String viewName) throws Exception {
Device device = DeviceUtils.getCurrentDevice(RequestContextHolder.currentRequestAttributes());
if (device.isMobile()) {
viewName = getMobileViewName(viewName);
}
return (InternalResourceView) super.buildView(viewName);
}private String getMobileViewName(String viewName) {
return viewName + "_mobile";
}@Override
protected Object getCacheKey(String viewName, Locale locale) {
Device device = DeviceUtils.getCurrentDevice(RequestContextHolder.currentRequestAttributes());
if (device.isMobile()) {
return super.getCacheKey(getMobileViewName(viewName), locale);
} else {
return super.getCacheKey(viewName, locale);
}
}
}'Developer > Mobile' 카테고리의 다른 글
[Mobile] 고찰.. 시작? 주의사항 모음 (0) 2013.03.04