2012-07-25 11 views
7

स्प्रिंग मोबाइल documentation निम्नलिखित विन्यास जोड़ने का सुझाव:स्प्रिंग मोबाइल: प्रोग्रामवेबअर्ग्यूमेंट रीसोल्वर प्रोग्रामेटिक रूप से कैसे जोड़ें?

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

@Controller तरीकों के लिए एक तर्क के रूप में वर्तमान डिवाइस वस्तु पारित करने के लिए।

फिर भी, एक का उपयोग कर सकते हैं:

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

} 

और बाईपास <mvc:annotation-driven> विन्यास।

फिर, DeviceWebArgumentResolver प्रोग्रामेटिक रूप से कैसे जोड़ें?

समाधान (लुसियानो):

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

    } 

    // ... 

} 

उत्तर

5

WebMvcConfigurerAdapter एक विधि addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)

विधि क्रियान्वित करना चाहिए है कि नामित शामिल है, लेकिन पहले आप एक WebArgumentResolver (इस मामले में कन्वर्ट करने के लिए की जरूरत है, DeviceWebArgumentResolver) HandlerMethodArgumentResolver में। इसके लिए, ServletWebArgumentResolverAdapter नाम की एक कक्षा मौजूद है।

+2

1.1.0.एम 1 रिलीज के अनुसार, स्प्रिंग मोबाइल में जावा-आधारित कॉन्फ़िगरेशन का समर्थन करने के लिए अब 'DeviceHandlerMethodArgumentResolver' शामिल है। –

संबंधित मुद्दे