Spring MVC を REST サーバーとして、AngularJS をクライアント側で使用できるようにしたいと考えています。
REST 用の URL がいくつかあります。
- /残り/製品
- /rest/products/{id}
そして、私はUI用のいくつかのURLを持っています:
- /ショップ/製品
- /shop/products/{id}
クライアント側でトリックを行うのは AngularJS であるため、AngularJS で使用される index.html ファイルにすべてのデフォルトの ui URL (残りのものではない) をリダイレクトできるようにしたいだけです。
したがって、Spring MVC 構成では、次のようなことができるようにしたいと考えています。
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = "com.mypackage.web")
public class WebAppConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/**").setViewName("index");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/");
resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
それで、すべての UI URL 処理を AngularJS に委譲したいと考えています。
また、ユーザーがブラウザーに不適切な URL を書き込んだ場合、Spring MVC によって index.html ファイルにリダイレクトされ、AngularJS がエラー UI ページでリダイレクトを行うようにしたいと考えています。Web 上で 1 つの index.html ファイルを使用するプロジェクトをいくつか見てきましたが、このエラー ケースを処理する人は誰もいません。
私はこのトリックを実行しようとして多くの時間を費やしてきましたが、解決策が見つかりません。
だから私の質問は:どうすればそれを行うことができますか?より一般的には、このSpring MVC-AngularJSの必要な構成が間違っていますか?
非常に重要:私はSpring MVC 3.2とTomcat 7.34をweb.xmlなしで使用しています(フルサーブレット3.0)
どうもありがとう。