java - 如何在 Spring 4 上正确使用 Models?

标签 java spring spring-mvc

我是 Spring 的 MVC 新手(但我已经在其他 php 框架中使用它很多年了)。

我有很多疑问,我阅读了 spring 信息,似乎是正确的。然后我检查了这个教程 http://javahash.com/spring-4-mvc-hello-world-tutorial-full-example/它可以工作,但是在 Controller 部分,有一段我不理解的代码,我想知道如何在 Spring 上正确使用模型。

据我所知,模型应该调用数据库,那么服务(接口(interface)和实现)和 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会使用默认的模型,如果我想添加更多交互并且指定一个模型来调用数据库怎么办?知道我该怎么做吗?

如果我想添加一项服务...我对此有点无能为力,如果有人可以帮助我理解...

提前致谢

最佳答案

模型是表示 View 所需数据的映射。它可以包含一个或多个实体、简单对象、字符串或任何您想要的内容。

MVC 不需要使用数据库。该模型不会“调用数据库”。您可以将存储库注入(inject) Controller 中,以将数据从数据库加载到模型中。

@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";

  }

}

关于java - 如何在 Spring 4 上正确使用 Models?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173842/

相关文章:

java - 为什么 m 方法的可见性会以这种方式改变输出?我预计会发生相反的情况

java - 为什么 Spring @Configuration 类继承没有按预期工作?

java - 在java spring中生成pdf文件时出错

java - 我所有 Controller 单元测试的 Spring 3.2.5 错误 "java.lang.AssertionError: No ModelAndView found"

java - 是否有用于审计 Java 中的 LDAP/安全管理行为的良好框架或库?

Java对象如何引用创建它的类

java - 如何在集合中使用 Spring Security @Pre 和 @Post 注解

java - Spring security 没有 Hibernate Session 绑定(bind)到线程

java - Spring - 以编程方式生成一组 bean

java - 使用 Spring Controller 处理错误 404