Принудительный запрос проверки @GrailsCompileStatic как AbstractMultipartHttpServletRequest

Я пытаюсь подать заявку @GrailsCompileStatic контроллеру, у которого есть действие, которое извлекает MultipartFiles из запроса:

request.getFile('foo')

Но получите следующее:

[Проверка статического типа] - Не удается найти соответствующий метод javax.servlet.http.HttpServletRequest#getFile(java.lang.String)

Есть ли шанс заставить компилятор проверить запрос на AbstractMultipartHttpServletRequest (который имеет метод getFile (java.lang.String)) вместо HttpServletRequest?

UPD Это решение работает:

MultipartFile multipartFile = ((StandardMultipartHttpServletRequest) request).getFile('myFile')

Но имеет несколько странное поведение при попытке проверить это:

org.codehaus.groovy.runtime. multipart.support.StandardMultipartHttpServletRequest"

1 ответ

Решение

http://docs.grails.org/2.2.1/api/org/codehaus/groovy/grails/plugins/testing/GrailsMockHttpServletRequest.html

а также

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/multipart/support/StandardMultipartHttpServletRequest.html

оба реализуют интерфейс

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/multipart/MultipartHttpServletRequest.html

так что просто используйте это

import org.springframework.web.multipart.MultipartHttpServletRequest
...

MultipartFile multipartFile = ((MultipartHttpServletRequest) request).getFile('myFile')
Другие вопросы по тегам