【问题标题】:Not found error - while trying to return a view未找到错误 - 尝试返回视图时
【发布时间】:2022-01-01 14:45:50
【问题描述】:

Controller:

public String saveAnswer(@Valid @ModelAttribute("answer") AnswerModel answer,BindingResult result,Model model) {
   System.out.println("saveanswer");
   if(result.hasErrors()) {
    return "question-detail/"+2;
}

    
   

问题:如何返回“question-detail/”+2?

我在尝试这样做时遇到此错误 -

"JSP file [/WEB-INF/question-detail/2.jsp]" not found error is occured.

我该如何解决这个问题?

【问题讨论】:

  • 欢迎来到 SO。这意味着此目录中缺少 2.jsp - /WEB-INF/question-detail/。在此处显示您的控制器代码。您将从 SO 社区获得多种选择。
  • 2.jsp 它不是 jsp 页面它是问题编号的 id。 2 并根据问题 id 动态更改,这里描述了问题 2 的详细信息,它可能会更改问题

标签: spring model-view-controller


【解决方案1】:

我猜对了。因此,您将需要(并且您可能缺少)这种(类似)类型的附加方法。 Id 可能是int/long/String(您需要检查一下,在下面的示例/猜测中我使用的是 Long):

@GetMapping("question-detail/{id}")
public String getQuestionDetail(@PathVariable Long id, Model model){
    model.addAttribute("question", someQuestionService.findByQuestionId(Long.valueOf(id)));
    return  "question-detail/"+id;";
}

所以,问题是,您得到 not found (404) 因为您缺少这个端点 - question-detail/{id} 期望/接受 id 作为路径变量。不完全匹配,但您当然可以查看我的 github 存储库 herehere。您应该了解自己遗漏了什么和做错了什么。

一旦您在上面实现,您可能还想在原始方法的返回中使用return "redirect:/question-detail/2"; 而不是return "question-detail/"+2;

【讨论】:

  • @RequestMapping(path = "/saveanswer",method = RequestMethod.POST) public String saveAnswer(@Valid @ModelAttribute("answer") AnswerModel answer,BindingResult result,Model model) { if(result .hasErrors()) { return "问题详细信息/"+2; }else { answerDao.saveAnswer(answer);返回“重定向:/onlinezone.com/question-detail/”+answer.getQuestion_id(); } }
  • 我想在表单出现错误时返回
  • 你能把你的项目放在 Github 上并在这里分享链接吗?
  • 检查行号。 190 和来自 /question-detail/{id} id 的发布请求可以是动态的,如果它有一些错误而不是返回到相同的 url
猜你喜欢
  • 2021-03-02
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多