Grails 애플리케이션에서 컨트롤러 조치의 데이터를 조치 후에 실행되는 필터로 전달하는 몇 가지 방법을 찾고 있습니다. 내가 좋아하는 뭔가 생각 :컨트롤러에서 필터로 데이터를 전달하십시오.
- 사용 메타 프로그래밍은 "passData을 추가 (폐쇄 :
class MyController { def myAction = { render(view:"myView", model:[key: "value"]) passData { // Do some processing here name = "paolo" age = 38 } } } public class MyFilters { def name def age def filters = { myFilter(controller: "*", action: "*") { after = { model -> // Do something with name and age return true } } } }
원래 계획은 BootStrap.config의 초기화() 폐쇄에서 다음 작업을 수행 할 수 있었다 pdClosure) "메서드를 모든 컨트롤러에 적용합니다.
- pdClosure의 대리자를 MyFilters로 설정하면이 클로저 내에 이름 및 나이 속성이 설정 될 때 MyFilters 인스턴스에 설정됩니다.
그러나 특정 컨트롤러에 대해 호출 될 MyFilters 인스턴스에 (BootStrap.init에서) 액세스 할 수있는 확실한 방법이 없기 때문에이 방법이 작동하지 않는다는 것을 알았습니다.
마찬가지로 필터 내에서 컨트롤러 인스턴스에 액세스 할 수있는 방법이없는 것처럼 보입니다. 물론, 모든 데이터를 모델에 넣을 수는 있지만 두 모델간에 데이터를 전달하는보다 세련된 방법이 있는지 궁금합니다. 모델에 데이터를 전달
덕분에, 돈