使用 PathVariable + GetMapping + ModelAndView 时 Spring Boot 返回 404

问题描述 投票:0回答:1

代码如下:

@RequestMapping(value = "/help/{id}", method = RequestMethod.GET)
    public ModelAndView welcome(@PathVariable(name="id", required = false) String id, HttpServletRequest req, Model m) {
        logger.log(Level.SEVERE, "I'm hit..................................");
        req.setAttribute("id", id);
        ModelAndView mv = new ModelAndView();
        mv.setViewName("MyView.jsp");
        return mv;
    }

MyView.jsp
只要我不使用
@PathVariable.
就不会显示 404 日志消息一直打印,即使是 404,所以控制器方法总是被调用。

java spring spring-boot jsp http-status-code-404
1个回答
0
投票

您应该更新项目中的 Spring 版本以允许使用

@PathVariable
注释的可选参数。

我们可以通过使用从 Spring 4.3.3 开始的 required 属性使

@PathVariable
可选

在您的代码中,您应该进行更改

@GetMapping("/help/{id}")
@ResponseBody
public String welcome(@PathVariable(required = false) String id, HttpServletRequest req) {
    logger.log(Level.SEVERE, "I'm hit..................................");
    return "ID: " + id;
}
© www.soinside.com 2019 - 2024. All rights reserved.