2011-10-31 57 views
1

如何在grails下運行servlet(GWTUpload項目的UploadAction)?我已經成功添加了servlet並從web.xml文件中使用它。但是,我真的想要使用grails框架(gorm)來包裝doPost/doGet方法的一些邏輯。在Grails下運行Servlet

我可以直接將servlet作爲控制器進行子類化,也許只是實例化控制器中的servlet並調用init()?我不知道如何正確執行此操作。

回答

0

這使我想到的最簡單的事情是:

  • 寫一個Grails控制器,實例化的servlet(有一次,在contstructor或@PostConstruct)和調用的init()`
  • 映射控制器方法(通過UrlMappings.groovy)映射到您的servlet將映射的url
  • 調用servlet.service(request, response)

雖然這有點破綻。另一種方法是在應用到servlet的過濾器中獲取spring(grails)bean的位置,並調用WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext())並在那裏調用自定義邏輯。

+0

我想我可能會更喜歡你的第二個解決方案,但是你的意思是應用於servlet的過濾器是什麼意思?我不介意從「春天」手中獲取豆,然後對它進行調用。 – Joel

+0

您將過濾器映射到web.xml中的servlet:在映射中指定'servlet'而不是'url-pattern' – Bozho