내가 나를 클래스와 함수 이름을 지정할 수 있습니다 Grails의에서 일반 함수를 작성하고, 그 기준에 따라 모든 함수 호출을 차단하기 위해 노력하고있어 :일반적인 방법 차단
getSomeClass().metaClass.invokeMethod = { String methodName, args ->
MetaMethod someAction = getSomeClass().metaClass.getMetaMethod(methodName, args)
def result = someAction.invoke(delegate, args)
if (methodName==getSomeMethodName())
intercept(args, result)
return result
}
을
이것은 POGO 및 도메인 클래스에서 작동하지만 컨트롤러 클래스에서는 작동하지 않습니다. Grails에서 사용할 수있는 컨트롤러 인터셉터와 필터가 있다는 것을 완전히 알고 있지만 이것들은 내가 달성하고자하는 것을 실제로 중앙 집중화하지 않으며 일부 중앙 집중식 동작을위한 간단한 제네릭 함수를 만들려고 시도했습니다.
왜이 컨트롤러에서 작동하지 않습니다, 감사합니다
컨트롤러에서 메소드 또는 클로저를 사용하여 요청을 바인딩합니까? 위의 코드는 Closure 구문 기반 Grails 컨트롤러에서는 작동하지 않습니다. – stefanglase
고마워요 @stefanglase, 내 컨트롤러 내 작업에 대한 방법을 사용하고있다 – crebbo
내 기본 질문은 왜 MyController.metaClass.invokeMethod = {String methodName, args ->} 도메인 개체 및 다른 포고 – crebbo