私はRESTful APIを構築しており、Spring RESTコントローラ(@RestController)とアノテーションベースの設定を持っています。私は自分のプロジェクトのウェルカムファイルをAPIドキュメントと共に.htmlまたは.jspファイルにしたいと思っています。Spring REST Controllerウェルカムファイルを設定する
他のWebプロジェクトでは、私はweb.xmlにwelcome-file-listを配置しますが、この特定のプロジェクトでは、(Javaと注釈を使用することをお勧めします)
これは、これは私のWebMvcConfigurerAdapter
@Configuration
@ComponentScan("controller")
@EnableWebMvc
public class ApplicationConfig extends WebMvcConfigurerAdapter {
@Bean
public Application application() {
return new Application("Memory");
}
}
であり、これはこれまでのところ、私が試した私のRESTコントローラー
@RestController
@RequestMapping("/categories")
public class CategoryRestController {
@Autowired
Application application;
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<Integer, Category>> getCategories(){
if(application.getCategories().isEmpty()) {
return new ResponseEntity<Map<Integer, Category>>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<Map<Integer, Category>>(application.getCategories(), HttpStatus.OK);
}
}
のごく一部である私のWebApplicationInitializer
public class WebAppInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(ApplicationConfig.class);
context.setServletContext(servletContext);
ServletRegistration.Dynamic dynamic = servletContext.addServlet("dispatcher",
new DispatcherServlet(context));
dynamic.addMapping("/");
dynamic.setLoadOnStartup(1);
}
}
次のとおりです。
<welcome-file-list>
と<welcome-file>
のweb.xmlを追加するだけです。- コントローラ内の
@RequestMapping("/categories")
をクラスレベルからすべてのメソッドに移動し、@RequestMapping("/")
という新しいメソッドを追加すると、String
またはModelAndView
のビュー名が返されます。私のweb.xml<welcome-file>
が@RequestMapping(value="/index")
を返すと組み合わせる「/インデックス」、である両方の組み合わせを、: - としてはhereを示唆した(後者のマッピングが見つかりませんでしため前者はちょうど、文字列で空白のページが返されます)
new ModelAndView("index")
、およびViewResolver
を設定クラスに追加します。 (「/インデックスは、」成功したマッピングされているにもかかわらず、Warning: No mapping found in DispatcherServlet with name 'dispatcher'
を返します。手動でURLに「/インデックス」を追加すると、正常のindex.jspにそれを解決)
インデックスコントローラの場合、@ RestControllerは使用せず、@コントローラのみを使用します。それ以外の場合は、あなたの記述*が空白のページを返すばかりの動作を得る* ... –