2

Spring MVC と Extjs を使用してアプリケーションを開発していますが、問題があります。コントローラーにファイル パスを渡す必要があります。コントローラーは、パスを使用してイメージを削除します。ただし、私の見解ではパスは正しいですが、リクエストがコントローラーに到着すると、パスには拡張子がありません。

表示: notepad-icon.png

コントローラ: メモ帳アイコン

@RequestMapping (value = "/delete/{file}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable String file){
    ModelAndView view = new ModelAndView(VIEW);
    service.delete(file);
    view.addObject("success", Boolean.TRUE);
    return view;
}

誰でも私に洞察を提供できますか??

4

2 に答える 2

2

それが単純な拡張機能である場合、これを行うことをお勧めします:

@RequestMapping (value = "/delete/{file}.{ext}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable("file") String file, @PathVariable("ext") String ext){
    ModelAndView view = new ModelAndView(VIEW);
    service.delete(file + "." + ext);
    view.addObject("success", Boolean.TRUE);
    return view;
}

これを行うもう 1 つの方法は少し回り道です。これは、useSuffixPatternMatchフラグRequestMappingHandlerMappingを false に設定することです。これにより、ファイル名全体が得られるはずですが、フラグの設定は少し難しいです。

于 2012-09-12T19:50:16.670 に答える
0

{file:.+} を RequestMapping に追加するだけです。

@RequestMapping (value = "/delete/{file:.+}", method = RequestMethod.DELETE)
于 2018-11-08T00:36:47.350 に答える