2017-08-26 1 views
2

applicationと呼ばれるSpring Rest APIと、その要求が/apiにマップされているとします。それは私がユーザーのリストを取得するGET方法例えば呼び出しを意味します接尾辞なしのSpring Rest APIと静的Webコンテンツへのアクセス

うまく機能
localhost:8080/application/api/users 

。私の目標は、このAPIの横にある単純な静的なHTMLファイルを互いに参照できるようにすることです。私はindex.htmlファイルを見つけて、それをホームページにする必要があります。

localhost:8080/application/ 

それは正しく使用して私index.htmlを示しています

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String homePage(ModelMap model) { 
    return "home"; 
} 

私は苦労
@Configuration 
@ComponentScan(basePackages = "net.nichar.application") 
@EnableWebMvc 
public class ApplicationConfiguration extends WebMvcConfigurerAdapter { 

@Bean 
public ViewResolver viewResolver() { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/pages/"); 
    resolver.setSuffix(".html"); 
    resolver.setExposeContextBeansAsAttributes(true); 
    return resolver; 
} 

は、必要にせずに、同じフォルダindex2.htmlindex3.html内の別のファイルの上に<a href=...>にナビゲートすることです明示的に接尾辞htmlを書きます。私は、(ホームページをマッピングする最初のものを除く)他の@RequestMappingを使用せずに

localhost:8080/application/index2 

のようなウェブページにアクセスすることを実現してみてください。

もう1つ質問がありますが、パスナビゲーション内のフォルダを「スキップ」する方法はありますか?明確にするために、私は、しかし、私は、私はしかし、彼らの誰もが説明し、春のリソースマッピングについてまもなくチュートリアルの数を追跡しようとしてい

localhost:8080/application/static/... 

のようにそれらにアクセスする必要があり、 webapp/staticフォルダにこれらのHTMLファイルを入れたいです同様の問題の解決策。私はSpring Bootを使用しません。

ありがとうございました。まもなく


内のファイルにアクセスする方法 - >で:

webapp/WEB-INF/pages/index.html --> localhost:8080/application 
webapp/static/index2.html  --> localhost:8080/application/index2 
webapp/static/index3.html  --> localhost:8080/application/index3 
+0

[Springブートで静的コンテンツが配信されない]の可能な複製(https://stackoverflow.com/questions/24661289/spring-boot-not-serving-static-content) –

+0

@AbhijitSarkarいいえ、私は春を使用しませんブート:) –

+0

私が言及した答えは、ブートに固有のものであるので、わかりました。 –

答えて

2

あなたはそのような何かを使用することができ、ログインがマッピングされている

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/login").setViewName("login"); 
    registry.addViewController("/welcome").setViewName("welcome"); 
    registry.addViewController("/about").setViewName("about"); 
    registry.addViewController("/contact").setViewName("contact"); 
} 

がログインします.html、ウェルカムはwelcome.htmlにマップされています。 @RequestMappingは必要ありませんが、依然として明示的なマッピングが必要です。

+0

おそらく最も良い答えです。私は、手動で特定のURLを解析して表示するのを避けることはできないようですが。 –

関連する問題