【问题标题】:"This method must return a result of type ModelAndView." - when returning a result of type ModelAndView“此方法必须返回 ModelAndView 类型的结果。” - 返回 ModelAndView 类型的结果时
【发布时间】:2017-05-04 13:50:01
【问题描述】:

LoginView 方法中,它显示一个错误,必须返回ModelAndView 类型。但我返回的是ModelAndView 类型的结果。

@RequestMapping("/login")
public  loginView( HttpServletRequest request, HttpServletResponse res)
{
    String name = request.getParameter("username");
    String password = request.getParameter("password");

    if(password.equals("admin")){
        return new ModelAndView("hipage","","");                
    }
}

【问题讨论】:

  • 因为代码是不可编译的,它是你的实际代码吗?至少缺少两件事:返回类型的声明以及应该返回的密码不是“admin”(顺便说一句,请不要在任何生产系统中使用它)。
  • 返回类型在哪里?
  • "返回新模型和视图"
  • IF 条件不成立时缺少返回。此外,正如@Steve-Smith 所指出的,缺少返回类型(在方法结构中,以“public”开头)。据我所知,这不应该编译。它应该像“public ModelAndView loginView(...”一样开始。
  • @dr0i 谢谢你们。我现在明白了,现在可以正常工作了。

标签: java httpserver modelandview


【解决方案1】:

我已经有了一个如何解决这个问题的方法

只有return statement 不会使您的方法返回某些内容,您应该指定您的方法将返回的数据类型(如果您想返回某些内容)否则void

所以正确的方法实现如下:

@RequestMapping("/login")
public ModelAndView loginView( HttpServletRequest request, HttpServletResponse res)
{
  // Your code logic with the proper return statement.
}

注意:在方法声明中添加 return 语句后,您还必须从 else 块中返回一些内容以处理密码不符合预期结果的情况。

【讨论】:

  • 无论谁投了反对票,请发表评论,以便我改进答案或将其删除。如果答案不合适。但请注意评论
【解决方案2】:

你的 return 语句在 if 中。

尝试在 public [...] methodName 后添加返回类型

如果有情况,你会回来。

public Object method(boolean test) { 
    if (!test) {
        return test;
    } 
    return null;
}

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 2013-12-18
    • 2015-09-25
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多