Struts2拦截器之PrepareInterceptor

      如果你的Action实现了Preparable接口,则这个拦截器会在你执行真正的execute()方法之前执行prepare()方法。如果你想在真正的execute()方法执行之前加入一些其他逻辑的话,这个拦截器就非常有作用了.假如你的你在struts.xml中声明的访问方法为:method="login"; 而你的Action实现了Preparable方法,且实现了prepare()方法,此外还提供了prepareLogin()方法或者prepareDoLogin()方法,示例:

public String login() throws Exception {
System.out.println("Exec login()");
}

@Override
public void prepare() throws Exception {
System.out.println("Exec prerare()");
}

public void prepareLogin() throws Exception {
System.out.println("Exec prepareLogin()");
}

public void prepareDoLogin() throws Exception {
System.out.println("Exec prepareDoLogin()");
}
则控制台打印的顺序为:
Exec prepareLogin()
Exec prerare()
Exec login()
如果去掉prepareLogin()方法,则会执行prepareDoLogin()方法,则控制台打印顺序为:
Exec prepareDoLogin()
Exec prerare()
Exec login()
在Preparable接口中有个alwaysInvokePrepare字段,它表示是否执行prepare()方法,默认为true,如果你不需要执行prepare()方法,而只想执行特定的prepareXX()方法,你可以将此字段设为false;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值