大家好,我正在编写一个spring控制器来打印目录的内容,所以我的控制器签名是
@RequestMapping(value = "/listdir/{dirname}")
public ResponseEntity<List<DirectoryItem>> listDirectory(@PathVariable String dirname){
List<DirectoryItem> directories = util.getDirectoryItems(rootFolder + dirname);
我用get来调用它:
/listdir/dirname
,它返回目录内容的json。如file1、file2,dir1,dir2,等等。
接下来我想要的是,在视图中,如果用户单击目录名,则调用相同的方法。这次我想呼叫应该是
listdir/dirname/dir1
,然后是
listdir/dirname/dir1/childdir
有谁知道完成这个的正确方法是什么吗?
感谢可以在映射中使用通配符
@GetMapping("listdir/**")
public String listDirectory(HttpServletRequest request) {
String dirname = request.getRequestURI().split(request.getContextPath() + "/listdir/")[1];
// ...
}
但是对于这样的请求,你根本不应该使用路径参数。不需要这样,只需通过request参数
发送参数@GetMapping("all")
public String listDirectory(@RequestParam("dirname") String dirname) {
// ...
}