2012-07-25 9 views
7

Yay aşağıdaki konfigürasyona ilave göstermektedir:Spring Mobile: DeviceWebArgumentResolver programlı olarak nasıl eklenir? <a href="http://static.springsource.org/spring-mobile/docs/1.0.x/reference/htmlsingle/" rel="noreferrer">documentation</a> mobil

<mvc:annotation-driven> 
    <mvc:argument-resolvers> 
     <beans:bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" /> 
    </mvc:argument-resolvers> 
</mvc:annotation-driven> 

@Controller yöntemlere bağımsız değişken olarak, mevcut cihaz nesne geçmek için.

Yine, tek bir kullanabilir:

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

} 

ve baypas <mvc:annotation-driven> konfigürasyonu.

Sonra, bir DeviceWebArgumentResolver programlı olarak nasıl eklenir?

Çözüm (Luciano):

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addArgumentResolvers(
     List<HandlerMethodArgumentResolver> argumentResolvers) { 

     // Adding Spring mobile argument resolvers 
     argumentResolvers.add(
      new ServletWebArgumentResolverAdapter(
       new DeviceWebArgumentResolver())); 

     argumentResolvers.add(
      new ServletWebArgumentResolverAdapter(
       new SitePreferenceWebArgumentResolver())); 

    } 

    // ... 

} 

cevap

5

WebMvcConfigurerAdapter uygulamanız gerektiğiyle yöntemdir

addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) adlı bir yöntemi içeren, ancak öncelikle bu durumda (a WebArgumentResolver dönüştürmek gerekir,) HandlerMethodArgumentResolver'a dönüştürülür. Bunun için ServletWebArgumentResolverAdapter isimli bir sınıf var.

+2

1.1.0.M1 sürümünden itibaren, Spring Mobile artık Java tabanlı yapılandırmayı desteklemek için 'DeviceHandlerMethodArgumentResolver' içerir. –

İlgili konular