Spring Mvc/Jpa-OneToMany:如何显示与另一个类关联的类的列表
我有一个具有OneToMany类与一个类序列绑定的类Module。 我的目标是显示模块列表,并通过点击其中一个,显示相关的序列列表 但它不起作用,我有一个HTTP 500错误。Spring Mvc/Jpa-OneToMany:如何显示与另一个类关联的类的列表
这里有我的控制器:
@RequestMapping(value="formation", method = RequestMethod.GET)
public ModelAndView allModules() {
List<Module> allModules = moduleService.findAll();
return new ModelAndView("formation", "modules", allModules);
}
@RequestMapping(value="sequences/{module}", method = RequestMethod.GET)
public String displaySequences(@PathVariable ("module") Module module, Model model) {
List<Sequence> allSequences = sequenceService.findByModule(module);
model.addAttribute("sequences", allSequences);
return "sequences";
}
和JSP这显示模块列表返回序列
<c:forEach items="${modules}" var="module">
<ul>
<li><a href="sequences/${module}">${module.titre}</a>
<br/>
</li>
</ul>
</c:forEach>
那么,哪里从何而来我的错误列表?
它的工作原理,当我做到这一点:
@RequestMapping(value="/sequences/{moduleId}", method = RequestMethod.GET)
public String displaySequences(@PathVariable ("moduleId") Long moduleId, Model model) {
Module module = moduleService.findById(moduleId);
model.addAttribute("module", module);
return "sequences";
}
,我改变链接与:
<a href="sequences/${module}">${module.titre}
,但我想了解我的错误。
为什么你不能够显示序列的原因是Spring不知道如何解析这个
/cmap-web/sequences/[email protected]
到模块实例。
您可以在Spring的文档here中阅读本节的16.3.2.2 URI Template Patterns
最后一段。为了方便,我在这里粘贴它。
@PathVariable参数可以是任何简单类型,例如int,long,Date等。Spring会自动转换为适当的类型,否则会抛出TypeMismatchException(如果不这样做)。您还可以注册对解析附加数据类型的支持。请参见第16.3.3.14节“方法参数和类型转换”和第16.3.3.15节“自定义WebDataBinder初始化”。
我可能没有每件事情做好,因为我希望通过增加模块类转换为字符串 '@InitBinder \t公共无效initBinder(WebDataBinder粘合剂){ \t \t binder.registerCustomEditor(Module.class,新PropertiesEditor()) ; \t}' 在阅读Spring文档第16.3.2.2节中的URI模板模式和[here](http://static.springsource.org/spring/docs/3.0.x/reference/validation.html #beans-beans-conversion),但现在我有一个HTTP 400错误。 有什么问题? – 2012-08-12 20:52:25
我尝试了[this](http://empire5.com/development/binding-a-custom-object-in-spring-3/)和[this]的组合(http://empire5.com/2011/ 05 /)但我有一个白页 – 2012-08-12 23:18:41
请发布您的代码为PropertiesEditor类。 – 2012-08-13 03:51:40
您是否看到JSP代替$ {module}呈现的内容? – 2012-08-12 18:58:27
它是一种代码/myAppli/sequences/[email protected],其中com.almerys.jpa.tomcatspring是模块类所在的软件包。 – 2012-08-12 19:25:51