有沒有在調用任何控制器操作之前執行某段代碼的方法?Grails - 跨控制器代碼,在每個請求上執行
我需要根據get參數的值設置會話變量,而不考慮哪個控制器被調用。
當然,一旦這個處理完成,請求需要按照正常的方式去對應的控制器/動作。
感謝
有沒有在調用任何控制器操作之前執行某段代碼的方法?Grails - 跨控制器代碼,在每個請求上執行
我需要根據get參數的值設置會話變量,而不考慮哪個控制器被調用。
當然,一旦這個處理完成,請求需要按照正常的方式去對應的控制器/動作。
感謝
聽起來像是你要使用filter。
例如如果擁有多個或所有控制器使用,但可以得到昂貴的grails-app/conf目錄/ MyFilter.groovy
class MyFilter {
def filters = {
extractSomething(controller: '*', action: '*') {
before = {
session.setAttribute('foo', params['paramName'])
}
}
}
}
過濾器是不錯的。 你也可以嘗試攔截:
def beforeInterceptor = {
session.setAttribute('foo', params['paramName'])
}
是的,這就是我一直在尋找,謝謝! – DanC 2011-03-24 16:55:26