【问题标题】:How to upload List object into Model in Spring?如何在 Spring 中将 List 对象上传到 Model 中?
【发布时间】:2013-05-07 13:46:30
【问题描述】:

所以,我在Controller中有以下方法:

@RequestMapping(value="/modules.htm",method = RequestMethod.GET )
protected String modules(ModelMap model) throws Exception {

      List<Module> modules = moduleService.getStudentModules(course_id);
      model.addAttribute....?
      return "modules";
}

而且我需要在jsp视图中显示这个列表,比如:

<h1>Modules: </h1>
module 1 
module 2... etc

我需要添加什么才能在 JSP 页面上显示完整列表?我应该如何将它上传到模型并检索它?先感谢您。

【问题讨论】:

  • model.addAttribute("modules", modules); 会将列表添加到模型中。使用jstl 循环列表。

标签: java spring jsp model-view-controller spring-mvc


【解决方案1】:

通过整个列表:

model.addAttribute("modules", modules);

然后对其进行迭代:

<c:forEach items="${modules}" var="module">
    ${module.anyProperty}
</c:forEach>

【讨论】:

  • ".anyProperty" - 是指对象中声明的方法吗?即“.getModuleName()”(我对视图代码不是很熟悉:P)
  • @exomen 它指的是类的任何getter,但没有get 部分。例如,要调用.getModuleName(),你必须写.moduleName。这称为表达语言,请查看doc 了解更多信息。
  • 如果在课堂上是私人的怎么办?
  • @exomen 我实际上从未尝试过,但我想它不会起作用,因为根据定义,getter 不能是私有的。此外,它没有任何功能意义,不应从类本身以外的其他地方调用私有方法。
  • @exomen 不,这就是我告诉你的(你真的应该阅读文档:))。假设您的班级Module 有一个私有字段name 和一个公共吸气剂getName()。在您的 JSP 文件中,当调用 .name 时,将调用 getter,而不是字段本身。使用.name,编译器将寻找一个名为getName()(或isName(),主要用于布尔值)的方法。即使你有私有字段name但没有对应的getter,也会抛出异常。
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 2022-11-10
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
相关资源
最近更新 更多