文字过滤拦截器 ContentInterceptor
public class ContentInterceptor extends AbstractInterceptor
{
@Override
public String intercept(ActionInvocation arg0) throws Exception
{
//获取action对象
Object obj=arg0.getAction();
if(obj!=null && obj instanceof WriteAction)
{
WriteAction action=(WriteAction)obj;
String str=action.getTxtContent();
if(str!=null&&str.contains("王"))
{ //过滤 “王”
str=str.replace("王","*");
action.setTxtContent(str);
}
}
//继续执行后续的action
returnarg0.invoke();
}
}
WriteAction
省略 主要就是包含一个textcontent属性和execute()方法
Struts.xml文件配置
<package name="date"extends="base">
<!-- 拦截器的声明,位置必须在包的顶部-->
<interceptors>
<interceptor name="contentinterceptor"class="interceptor.ContentInterceptor"/> //class对应拦截器类
</interceptors>
<!-- 内容过滤的demo -->
<action name="writeAction" class="action.WriteAction">
<!-- 添加默认的拦截器 -->
<!-- 如果给action单独定义了拦截器的话,默认的拦截器就不会起作用了,并且在基包base中的拦截器也不起作用了,只有这个单独的会起作用-->
<interceptor-ref name="defaultStack"/> //默认的拦截器
<interceptor-ref name="contentinterceptor"/> //引用自定义拦截器
<result name="ok">/strWriter.jsp</result>
</action>
</package>