我是使用Spring的MVC的新手(但我已经在其他php框架上使用了几年)。
我有很多疑问,我阅读了弹簧信息并且似乎是正确的...然后我检查了这个教程http://javahash.com/spring-4-mvc-hello-world-tutorial-full-example/并且它可以工作,但是在控制器部分,有一个我不明白的代码,我想知道如何正确使用Spring上的模型。
据我所知,模型应该调用对db的调用,那么,服务(接口和实现)和DTO呢?
在这个例子中他们做了这样的事情:
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public String hello(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "helloworld";
}
}
它接收一个模型作为参数......我敢打赌,如果有的话,Spring会使用默认的,如果我想添加更多的交互,让我们说,指定一个模型来调用db?知道我怎么能这样做吗?
如果我想添加服务......如果有人能帮助我理解,我对它有点无能为力......
提前致谢
答案 0 :(得分:1)
此模型对象由spring注入,其内容将发送到视图。
您可以在http://docs.spring.io/spring-framework/docs/current/javadoc-api/查看模型界面的文档。
如果您想访问视图中的某个对象,可以使用
model.addAttribute(object)
。
我想你可以阅读The IoC Container文档来了解spring是如何工作的。
答案 1 :(得分:1)
Model是一个表示视图所需数据的映射。它可以包含一个或多个实体,简单对象,字符串或任何您想要的内容。
MVC不需要使用数据库。该模型不“调用数据库”。您可以将存储库注入控制器,以将数据从数据库加载到模型中。
@Controller
@RequestMapping("/foo")
public class FooController {
@Autowired
private FooRepository fooRepository;
@RequestMapping
String getFoos(Model model) {
List<Foo> foos = fooRepository.findAll();
model.addAttribute("foos", foos);
model.addAttribute("someOtherDataYourViewNeeds", "bar");
return "foo/list";
}
}