2016-06-18 11 views
0

はのは、私のウェブサイトの名前があるとしましょう:foo.com春RequestMapping(/ {カスタム})

ユーザーの種類foo.com、私はのindex.htmlを示したいと思います。

ユーザがfoo.com/somethingと入力すると、サーバがコントローラに要求をキャッチしてもらいたいと思います。ここで

は私がにHomeControllerにやったことです: 円形ビューパス[index.htmlを:

@Controller 
public class HomeController { 
    @RequestMapping(value={"/"}, method=RequestMethod.GET) 
    public String getHome() { 
     return "index.html"; 
    } 
} 

そして、CustomControllerが要求しかし

@Controller 
public class CustomController { 
    @RequestMapping(value={"/{custom}"}, method=RequestMethod.GET) 
    public String getCustom(@PathVariable String custom) { 
     // Do something here.. 
    } 
} 

をキャッチする必要があり、それはエラーをスローします]:現在のハンドラURL [/index.html]に再度ディスパッチします。 HomeControllerが文字列:index.htmlを返した後に、CustomControllerがGET要求をキャッチするからです:foo.com/index.html

public class WebMvcConfiguration extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
     registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets"); // My asset 
     registry.addResourceHandler("index.html").addResourceLocations("file:/index.html"); 
    } // It's not working 

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("forward:/" + FileNames.INDEX); 
    } // This also not working 
} 

そしてCustomControllerに@RestControllerする@Controllerから注釈を変更するにはオプションではありません。

は、私はこのようないくつかの研究をしました。

また、プロジェクトにはJSPファイルがありません。これらのファイルはプレーンな* .htmlファイルです。私は春にリリース1.3.3を使用しています

My project setup

ので、私を助けてください。

答えて

0

この解決方法はui-router(AngularJSライブラリ)で動作します。春サーバーコードで、あなたがこれを行うことができ、その後

// In your app module config 
$resourceProvider.defaults.stripTrailingSlashes = false; 

:また、あなたは$のResourceProvider設定を変更する必要がhttps://spring.io/blog/2015/05/13/modularizing-the-client-angular-js-and-spring-security-part-vii

@RequestMapping(value = "/{custom:[^\\.]*}") 
public String redirect(@PathVariable String custom) { 
    // Do something here... 
    return "forward:/"; 
} 

は、このリンクで解決策を見つけました

関連する問題