Spring WebMVCをやってみる (19) - UriComponentsBuilder -
公式ドキュメント的にはBuild URIsとBuild URIs to Controllers and Methodsなあたりを読みつつ
package sample;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
import org.springframework.web.util.UriComponentsBuilder;
//import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
@Controller
@RequestMapping("/sample")
public class SampleController {
@RequestMapping
@ResponseBody
public String index() {
// UriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentContextPath();
UriComponentsBuilder builder = MvcUriComponentsBuilder
.fromMethodName(SampleController.class, "test");
return builder.build().toString();
}
@RequestMapping("/test")
public void test() {
}
}
単純に「ServletContextから作用するパスを使いたいならServletUriComponentsBuilder」、「コントローラー・メソッドなどから生成されるパス等を使いたいならMvcUriComponentsBuilder」ってとこか。今回突っ込んでないけど、UriComponentsBuilderのfromUriStringを使うことでURI Template的な仕様を持ったURI生成等も利用することが出来る模様
んまぁここらへんはこんくらいで