我希望能够在客户端使用 Spring MVC 作为 REST 服务器和 AngularJS。
我有几个 REST 网址:
- /休息/产品
- /rest/products/{id}
我有几个 UI 网址:
- /商店/产品
- /shop/products/{id}
因为它是 AngularJS 在客户端做的伎俩,我只想能够将所有默认的 ui url(而不是其余的)重定向到 AngularJS 使用的 index.html 文件。
所以,在 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 页面上进行重定向。我在网上看到过几个项目,只有一个 index.html 文件,但没有人处理这种错误情况。
我一直在努力尝试这个技巧,但我找不到解决方案。
所以我的问题是:我该怎么做?更一般地说,我对这个 Spring MVC-AngularJS 想要的配置有错吗?
非常重要:我使用没有 web.xml 的 Spring MVC 3.2 和 Tomcat 7.34(完整的 Servlet 3.0)
非常感谢。