Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring Roo-将实体绑定到控制器方法参数字段_Spring Mvc_Spring Roo - Fatal编程技术网

Spring mvc Spring Roo-将实体绑定到控制器方法参数字段

Spring mvc Spring Roo-将实体绑定到控制器方法参数字段,spring-mvc,spring-roo,Spring Mvc,Spring Roo,我拥有一个参考文件的roo实体: @RooJavaBean @RooToString @RooJpaActiveRecord public class ActivatedConfiguration { @NotNull @OneToOne @JoinColumn(unique = true, nullable = false) private Configuration configuration; ... } 在Spring controller中,我用该实体作为参数

我拥有一个参考文件的roo实体:

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class ActivatedConfiguration {

  @NotNull
  @OneToOne
  @JoinColumn(unique = true, nullable = false)
  private Configuration configuration;

  ...
}
在Spring controller中,我用该实体作为参数注释了mathod:

@RequestMapping(value = "/")
public String startActivation(ActivatedConfiguration activatedConfiguration){
...
}
当我准备HTML GET请求时:

http://localhost:8080/app?configuration=1&[...]
spring自动注入了这一领域


问题是:这种魔力从何而来?如何在junit测试中模拟数据库抓取?

这是由向Spring MVC注册的用户处理的-如果您查看您的web文件夹,您应该看到一个ApplicationConversionServiceFactoryBean\u Roo\u ConversionService.aj类,其中包含应用程序的所有不同转换器-应该有一个转换器接收字符串并将其转换为您的配置类,其本质是接收id作为字符串,将其转换为long,然后在存储库中查找具有该id的配置实体,这就是Spring MVC绑定参数的方式。

than!我找到了FormattingConversionServiceFactoryBean.java。我应该在哪里搜索配置类转换器。转换器应该有一个对应的.aj文件,你能在同一个文件夹中查找吗?我项目中唯一的方面文件在我有实体类的包中。因为我没有访问你的代码的权限,让我来展示Spring roo附带的示例项目的转换器的位置-petclinic.roo-如果您运行脚本,转换器位于com.springsource.petclinic.web包-applicationconversionservicesfactorybean\u roo\u ConversionService.aj文件中。请您检查一下,您应该能够找到与我在项目站点上读到的相同的转换器:随着SpringFramework3.0的引入,这个示例应用程序不再是发行版的一部分。代码现在作为单独的示例源存储库的一部分进行维护。我应该在帖子中写道我正在使用Spring3.0。。。