Spring MVC 3.0.x文件上传-为什么是isn';原来的模型还没有回来吗?
我正在使用Springs MVC 3.0.x上传csv文件。读完后,我发现上传一个文件非常简单。在他的例子中,他调用他的模型Spring MVC 3.0.x文件上传-为什么是isn';原来的模型还没有回来吗?,spring,model-view-controller,Spring,Model View Controller,我正在使用Springs MVC 3.0.x上传csv文件。读完后,我发现上传一个文件非常简单。在他的例子中,他调用他的模型UploadItem。我的模型叫做CsvFile,它只是一个POJO 我想增强模型以包含数据源。因此,我用xml定义了数据源bean,并在调用GET方法时实例化它。该对象的哈希代码为3fa980b。加载Springbean配置文件时,按照预期调用了获取数据源的构造函数。然后我将其添加到org.springframework.ui.Model中 @RequestMapping
UploadItem
。我的模型叫做CsvFile
,它只是一个POJO
我想增强模型以包含数据源。因此,我用xml定义了数据源bean,并在调用GET方法时实例化它。该对象的哈希代码为3fa980b。加载Springbean配置文件时,按照预期调用了获取数据源的构造函数。然后我将其添加到org.springframework.ui.Model中
@RequestMapping( method = RequestMethod.GET)
public String getUploadForm(Locale locale, Model model) {
ApplicationContext context = new ClassPathXmlApplicationContext("observation-service.xml");
CsvFile csvFile = (CsvFile)context.getBean("csvfile");
logger.info("csvfile in get " + csvFile.toString() );
model.addAttribute("csvFile",csvFile);
return "npnSubmitData";
}
下一步让我大吃一惊。调用POST处理程序时,将调用CsvFile的默认构造函数。这提供了对CsvFile对象的访问,但与哈希代码53b5168d不同,数据源为空。我希望返回相同的对象
@RequestMapping(method = RequestMethod.POST)
public String create(CsvFile csvFile, BindingResult result) {
logger.info("upload file. " + csvFile.toString());
if (result.hasErrors()) {
return "npnSubmitData";
}
return "populated";
}
为什么不返回原始对象 为什么是同一个物体?这是一个新的请求,可能与第一个请求没有任何关联。另外,如果可以注入它,为什么要使用
getBean
?为什么要自己创造一个新的环境?!