特にSpringMVCで最も重要な違いの1つは、ABSOLUTEパスとRELATIVEパスです。
ご存知のとおり: Spring MVCでは、ビューをまたはオブジェクト
として返すことができStringModelAndView
重要な注意:
どちらの場合も、相対/絶対パスに注意を払う必要があります:
/ビュー名の先頭で宣言する場合は、絶対パスを使用しています。つまり、クラスレベル
は関係なく、最終的なビュー名として直接導入されます。 @RequestMapping
- ビュー名の先頭で宣言しない場合は、相対パス(クラスパスに対する相対パス)を使用しているため、クラスレベルに追加されて最終的なビュー名が作成されます。
/ @RequestMapping
したがって、Spring MVCを使用する場合は、上記の注意事項を考慮する必要があります。
例:
1。2つのHTMLファイルtest1.htmlを作成し、spring(ブート)構造test2.htmlのフォルダーに作成します。相対パスの場合、クラスレベルはフォルダーパスとして動作する
ことに注意してください。static
@RequestMapping
--- resources
--- static
--- classLevelPath //behaves as a folder when we use relative path scenario in view names
--- test2.html //this will be used for relative path [case (2)]
--- test1.html //this will be used for absolute path [case (1)]
- 以下のようなコントローラクラスを作成します。この例は、リターンが
Stringあり、相対パスと絶対ModelAndViewパスの両方でのさまざまなケースを示しています。
@Controller
@RequestMapping("/classLevelPath")
public class TestController {
//case(1)
@RequestMapping("/methodLevelAbsolutePath1")
public String absolutePath1(Model model){
//model.addAttribute();
//...
return "/test1.html";
}
//case(1)
@RequestMapping("/methodLevelAbsolutePath2")
public ModelAndView absolutePath2(Model model){
ModelAndView modelAndView = new ModelAndView("/test1.html");
//modelAndView.addObject()
//....
return modelAndView;
}
//case(2)
@RequestMapping("/methodLevelRelativePath1")
public String relativePath1(Model model){
//model.addAttribute();
//...
return "test2.html";
}
//case(2)
@RequestMapping("/methodLevelRelativePath2")
public ModelAndView relativePath2(Model model){
ModelAndView modelAndView = new ModelAndView("test2.html");
//modelAndView.addObject()
//....
return modelAndView;
}
}
注:
ビューファイルのサフィックスはViewResolver(たとえばInternalResourceViewResolver、またはSpring Bootspring.mvc.view.suffix=.htmlのファイルで指定できますが、上記のコードではサフィックスをappliction.properties宣言しないでください)。.html
宜しくお願いします