メソッドのみを含むController
名前を作成しました。もう1つは、すべてのメソッドを含み、アノテーションを使用して使用します。InterceptionLogger.java
Interception
Controller
Application
action
Interception
@With
これはApplication.java
コントローラーです:
@With(InterceptionLogger.class)
public class Application extends Controller {
public static void index() {
System.out.println("Inside index!!!");
render();
}
public static void welcome(String txtName){
render(txtName);
}
InterceptionLogger.java
コントローラがこれである場合:
public class InterceptionLogger extends Controller {
@Before
static void logBefore(){
System.out.println("Inside \"logBefore\" method of App Controller");
}
@After
static void logAfter(){
System.out.println("Inside \"logAfter\" method of App Controller");
}
}
アプリケーションを実行すると、出力は次のようになります。
Inside "logBefore" method of App Controller
Inside index!!!
Inside "logAfter" method of App Controller
さすがに結構です。
しかし、これに変更するInterceptionLogger.java
と:
public class InterceptionLogger extends Controller {
@Before(only="welcome")
static void logBefore(){
System.out.println("Inside \"logBefore\" method of App Controller");
}
@After(only="index")
static void logAfter(){
System.out.println("Inside \"logAfter\" method of App Controller");
}
}
次に、この出力を取得していますindex
:
Inside index!!!
この場合、ステートメントInside "logAfter" method of App Controller
がコンソールに出力されないのはなぜですか?
それを機能させる方法は?