构建 Spring MVC 应用程序,控制器“找不到符号”模型
Posted
技术标签:
【中文标题】构建 Spring MVC 应用程序,控制器“找不到符号”模型【英文标题】:Building Spring MVC application, Controller "Cannot find symbol" Model 【发布时间】:2016-08-19 14:12:02 【问题描述】:我首先使用 gradle bootRun
成功构建了我的 Spring MVC 项目,并使用了以下控制器类:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController
@RequestMapping("/")
public String hello()
return "resultPage";
然后我将其更改为将数据传递给我的视图类:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController
@RequestMapping("/")
public String hello(Model model)
model.addAttribute("message", "Hello from the controller");
return "resultPage";
当我现在构建我的项目时,我收到以下错误:
HelloController.java:13: error: cannot find symbol
public String hello(Model model)
^
symbol: class Model
location: class HelloController
1 error
:compileJava FAILED
FAILURE: Build failed with an exception.
任何想法我做错了什么?
【问题讨论】:
可能缺少导入? @MatiasElorriaga 是的,正确的!几分钟前我刚刚添加了一个答案。 【参考方案1】:我发现了问题。
如果我们希望 DispatcherServlet 将 Model 注入到函数中,我们应该做的一件事就是导入 Model 类。
import org.springframework.ui.Model;
所以,我将我的控制器类更改为以下,它工作了!
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.ui.Model;
@Controller
public class HelloController
@RequestMapping("/")
public String hello(Model model)
model.addAttribute("message", "Hello from the controller");
return "resultPage";
【讨论】:
【参考方案2】:您可以使用 ModelAndView API:
@RequestMapping("/")
public ModelAndView hello()
ModelAndView modelAndView = new ModelAndView("resultPage");
modelAndView.addObject("message", "Hello from the controller");
return modelAndView;
ModelAndView 文档:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/ModelAndView.html
【讨论】:
为什么作者一定要用它?它解决了问题?以上是关于构建 Spring MVC 应用程序,控制器“找不到符号”模型的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spring MVC 设计通用响应构建器/RESTful Web 服务?