PreResultListener
是一个监听器接口,它可以在Action完成控制处理之后,系统转入实际的物理视图之间被回调。
Struts2应用可由Action、拦截器添加 PreResultListener
监听器,添加 PreResultListener
监听器通过 ActionInvocation
的 addPreResultListener()
方法完成。一旦为Action添加了 PreResultListener
监听器,该监听器就可以在应用转入实际物理视图之前回调该监听器的 beforeResult()
方法;一旦为拦截器添加了 PreResultListener
监听器,该监听器会对该拦截器所拦截的所有Action都起作用。
下面就通过一个简单的例子来说明如何在Action中添加 PreResultListener
。
我们将 execute
方法修改为以下这样:
public String execute() throws Exception { ActionInvocation invocation = ActionContext.getContext().getActionInvocation(); invocation.addPreResultListener(new PreResultListener() { public void beforeResult(ActionInvocation invocation, String resultCode) { System.out.println("返回的逻辑视图名字为:" + resultCode); // 在返回Result之前加入一个额外的数据 invocation.getInvocationContext().put("extra", new Date() + "由" + resultCode + "逻辑视图名转入"); } }); return SUCCESS; }
成功运行Demo程序以后,会在控制台和网页上输出对应的信息。
这只是一个很小的知识点,在于提醒自己有的时候这些小的知识点也是解决关键问题的所在。请一定要记住,存在着这么一个小的知识点。
果冻想,认真玩技术的地方。
2016年2月21日 于呼和浩特。