2012-07-25 11 views
7

wiosna mobilna documentation sugerują dodanie następującej konfiguracji:Spring Mobile: jak programowo dodać program DeviceWebArgumentResolver?

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

przejść aktualny obiekt urządzenie jako argument @Controller metod.

Jednak można użyć:

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

} 

i bypass <mvc:annotation-driven> konfigurację.

Następnie, jak dodać programowo DeviceWebArgumentResolver?

Solution (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())); 

    } 

    // ... 

} 

Odpowiedz

5

WebMvcConfigurerAdapter zawiera metodę o nazwie addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)

To jest metoda potrzebne do wdrożenia, ale najpierw trzeba konwertować WebArgumentResolver (w tym przypadku, DeviceWebArgumentResolver) do HandlerMethodArgumentResolver. W tym celu istnieje klasa o nazwie ServletWebArgumentResolverAdapter.

+2

Od wersji 1.1.0.M1 Spring Mobile zawiera teraz 'DeviceHandlerMethodArgumentResolver' do obsługi konfiguracji opartej na Javie. –

Powiązane problemy