- 准备拦截器
- 准备拦截器参数
- 准备拦截器的示例
如果准备拦截器实现了Preparable接口, 则在操作上调用prepre()方法。它在execute()方法之前调用prepare()方法。
要使用prepare拦截器, 你需要在操作类中实现Preparable接口, 并覆盖其方法prepare。
默认情况下, 它位于默认栈中。因此, 你无需明确指定它。
准备拦截器参数
仅为预拦截器定义了1个参数。
Parameter | Description |
---|---|
alwaysInvokePrepare | 默认情况下将其设置为true。 |
准备拦截器的示例
<action name="login" class="com.srcmini.LoginAction">
<interceptor-ref name="params"/>
<interceptor-ref name="prepare"/>
<result name="success">login-success.jsp</result>
</action>
动作课
动作类必须实现Preparable接口并重写其方法prepare()。
package com.srcmini;
import com.opensymphony.xwork2.Preparable;
public class LoginAction implements Preparable{
private String name, password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void prepare() throws Exception {
System.out.println("preparation logic");
}
public String execute(){
System.out.println("actual logic");
return "success";
}
}
你可以在控制台上看到输出, 准备逻辑在实际逻辑之前打印。
下载完整示例(在不带jar的Eclipse ide中开发)
下载完整示例(在Myeclipse ide中开发)
输出
现在, 从struts.xml文件中删除准备拦截器的条目, 准备逻辑将不会打印。
评论前必须登录!
注册