Grails는 컨트롤러 전에 실행되는 filters을 제공합니다. 그들은 다음과 같이 클래스에 정의하고 있습니다 :Grails 필터 구문 또는 Grails 외부에서 Grails 필터를 호출하는 방법
는class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
이는 잘 작동하지만 난 그게 내가 전에 본 적이있는 그루비 코드처럼 보이지 않는 더 나은 구문을 이해하고 싶습니다. 특히, 위의 라인은 myFilter
으로 시작하여 매우 이상하게 보입니다. 이것은 myFilter
이라는 메서드에 대한 메서드 정의입니까? 그렇다면 각 매개 변수 뒤에 :'*'
의 의미는 무엇입니까? 기본 매개 변수 값일 수 있다고 생각했지만 ='*'
이됩니다. 에서 콜론을 사용하는 명명 된 매개 변수를 본 적이 있는데 을 정의하지 않았기 때문에을 호출하기 전에이 메서드를 호출 할 수 없습니다.
일반 Groovy 클래스에서 필터링 코드를 실행하는 방법을 누군가에게 알려주면 훨씬 더 잘 이해할 수있을 것 같습니다. 즉, 위의 행을 포함하는 MyFilters.groovy 파일이있는 경우이 Groovy 코드를 마무리하여 "필터링 중"을 인쇄 할 수 있습니까?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?
큰 질문 다람쥐! 나는 지금 막 동일한 문제로 싸우고있다 - 그것을 묻기를위한 감사합니다! – alpian
나는 무엇인가를 알고 싶어한다. ... 나는 거의 자지 않는다, 웃는다! – Topera