2012-06-25 3 views
2

FormPanel, FileUploadField 및 Spring을 사용할 때 파일 객체를 가져 오는 데 문제가 있습니다.Spring MVC에서 gwt-gwt 3.0 파일 업로드 문제

pulic class UploadItem{ 
    private String filename; 
    private CommonsMultipartFile fileData; 
    .... 
    getters/setters 
    .... 
} 
: 나는 일반 getter와 setter를 가진 모델 클래스가

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

:

내가 내 스프링 컨텍스트 파일에 CommonsMultipartResolver 빈을 추가 : 여기

내가 가진 무엇

컨트롤러 클래스 :

@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); 
    } 
    }); 

내가 항목에 nullpointerexecption를 얻을. getFileData(). getOriginalFilename();

문제가 무엇인지 알 수 없습니다.

답변

1

내 생각에 폼은 UploadItem에 바인딩되지 않습니다. 왜냐하면 당신은 Spring에게 그렇게 말하지 않았기 때문입니다. 자, 나는 이것을하는 법을 누군가 알고 있기를 바라고 있습니다. 일반적으로 나는 Spring의 form 태그 라이브러리를 사용하고 form에 modelAttribute 나 commandName을 제공 할 것이다. 그러나 나는 (그리고 ts) GWT를 사용하기 때문에 GWT 컴포넌트로부터 폼이 만들어지고 스프링 폼 태그를 사용할 수 없다.