Spring Controller para lidar com todas as solicitações não correspondidas por outros controladores

Eu tenho uma série de controladores com mapeamentos de solicitações que correspondem a determinados URLs. Também quero um Controlador que corresponda a qualquer outro URL não correspondido pelos outros Controladores. Existe uma maneira de fazer isso no Spring MVC? Por exemplo, eu poderia ter um controlador com @RequestMapping (value = “**”) e alterar a ordem na qual os Spring Controllers são processados ​​para que este Controller seja processado por último para capturar todas as solicitações sem correspondência? Ou existe outra maneira de alcançar esse comportamento?

Se sua URL base é assim = http: // localhost / myapp / onde myapp é seu contexto, então myapp / a.html, myapp / b.html myapp / c.html será mapeado para o primeiro método 3 no seguinte controlador . Mas qualquer outra coisa alcançará o último método que corresponde a **. Por favor, note que, se você colocar ** mapeado método no topo do seu controlador, então todos os pedidos chegarão a este método.

Então este controlador servrs sua exigência:

@Controller @RequestMapping("/") public class ImportController{ @RequestMapping(value = "a.html", method = RequestMethod.GET) public ModelAndView getA(HttpServletRequest req) { ModelAndView mv; mv = new ModelAndView("a"); return mv; } @RequestMapping(value = "b.html", method = RequestMethod.GET) public ModelAndView getB(HttpServletRequest req) { ModelAndView mv; mv = new ModelAndView("b"); return mv; } @RequestMapping(value = "c.html", method = RequestMethod.GET) public ModelAndView getC(HttpServletRequest req) { ModelAndView mv; mv = new ModelAndView("c"); return mv; } @RequestMapping(value="**",method = RequestMethod.GET) public String getAnythingelse(){ return "redirect:/404.html"; } 
 @RequestMapping (value = "/**", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseEntity defaultPath() { LOGGER.info("Unmapped request handling!"); return new ResponseEntity("Unmapped request", HttpStatus.OK); } 

Isso fará o trabalho com a ordem correta de correspondência do controlador. Ele será usado quando nada for correspondido.

Intereting Posts