7

Spring モバイルのドキュメントでは、次の構成を追加することが提案されています。

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

現在の Device オブジェクトを引数として@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()));

    }

    // ...

}
4

1 に答える 1

5

WebMvcConfigurerAdapterという名前のメソッドが含まれていますaddArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)

これが実装する必要があるメソッドですが、最初に a WebArgumentResolver(この場合はDeviceWebArgumentResolver) をに変換する必要がありますHandlerMethodArgumentResolver。そのために、 という名前のクラスが存在しServletWebArgumentResolverAdapterます。

于 2012-07-25T16:40:29.160 に答える