Spring MVC的gwt-gwt 3.0文件上传问题

时间:2012-06-25 17:51:42

标签: spring-mvc gxt

当我使用FormPanel,FileUploadField和Spring时,我遇到了获取文件对象的问题。

这就是我所拥有的:

我将CommonsMultipartResolver bean添加到我的Spring Context文件中:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
   <property name="maxUploadSize" value="100000"/>
</bean>

我有一个带有常规getter和setter的模型类:

pulic class UploadItem{
  private String filename;
  private CommonsMultipartFile fileData;
  ....
  getters/setters
  ....
}

我的控制器类:

@Controller
@RequestMapping("/Foo")
public class ThingController extends BaseController implements ServlerContextAware{
  ....
  @RequestMapping(value = "/bar", method = RequestMethod.POST)
  public @ResponseBody
  String createFile(UploadItem item, BindingResults results){
     String orgFile = item.getFileData().getOriginalFilename();
     return orgFile;
  }

我正在使用UiBinding来创建表单字段,但我正在调用fileupload字段和formpanel以在代码中添加其他方法。

我有一个提交按钮,调用:

  form.submit();

我的构造函数我负责其他形式的要求:

  form.setMethod(Method.POST);
  form.setEncoding(Encoding.MULTIPART);
  form.setAction("http://url.com/foo/bar");
  form.addSubmitCompleteHandler(new SubmitCompleteHandler(){
     @Override
     public void onSubmitComplete(SubmitCompleteEvent event){
          String results = event.getResults();
          Info.display("Upload Response", results);
     }
  });

当我运行代码时,我在item.getFileData()上获得了nullpointerexecption .getOriginalFilename();

我不知道问题是什么。

1 个答案:

答案 0 :(得分:1)

我的猜测是表单没有绑定到UploadItem,因为你从未告诉Spring这样做。现在,我希望有人知道如何做到这一点。通常我会使用Spring的表单标记库并在表单中提供modelAttribute或commandName,但由于我(和ts)使用GWT,表单是从GWT组件构建的,我不能使用Spring表单标记。