Struts2中PreResultListener的简单示例
2013-08-18 00:39
375 查看
PreResultListener是一个监听器接口,它可以在Action完成控制处理之后,系统转入实际的物理视图之前被回调。Struts2应用中可以在Action或拦截器添加PreResultListener监听器,添加监听器通过ActionInvocation的addPreResultListener方法完成。一旦为Action添加了PreResultListener监听器,该监听器就可以在应用转入实际物理视图之前回调该监听器的beforeResult方法;一旦为拦截器添加了PreResultListener监听器,该监听器会对该拦截器所拦截的Action都起作用。
编写一个简单示例,为HelloAction添加一个PreResultListener监听器:
编写一个简单示例,为HelloAction添加一个PreResultListener监听器:
package com.huey.action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.interceptor.PreResultListener; /** * @version 2013-08-18 * @author huey2672 * */ public class HelloAction extends ActionSupport { /** * */ private static final long serialVersionUID = 3374986591581506345L; @Override public String execute() throws Exception { // 添加PreResultListener监听器 ActionContext.getContext().getActionInvocation(). addPreResultListener(new PreResultListener() { /** * @param invocation * @param result 获得返回的逻辑视图 */ @Override public void beforeResult(ActionInvocation invocation, String result) { // 打印返回的逻辑视图 System.out.println("返回的逻辑视图为:" + result); // 在返回到物理视图之前,为其添加一个新的Action属性 invocation.getInvocationContext().put("name", "Huey"); } }); // Action的处理控制 System.out.println("在这里忙些什么……"); return SUCCESS; } }编写配置文件struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="hello" extends="struts-default"> <action name="helloAction" class="com.huey.action.HelloAction" > <result name="success">welcome.jsp</result> </action> </package> </struts>再编写视图资源welcome.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome</title> </head> <body> Hello, <s:property value="name"/>! </body> </html>在浏览器中键入http://localhost:8080/PreResultListenerDemo/helloAction(PreResultListenerDemo是项目名),在控制台中将打印如下语句:
在这里忙些什么…… 返回的逻辑视图为:success在welcome.jsp页面中输出:
Hello, Huey!PreResultListener可以监听制定Action跳转到不同Result的细节,所以可以用来作为日志的 实现方式。
相关文章推荐
- struts2 拦截器和actioninvocation、PreResultListener
- Struts2拦截器-PreResultListener
- Struts2使用PreResultListener
- Struts2中使用PreResultListener来查看action与jsp执行
- struts2之PreResultListener(转)
- Struts2拦截器-PreResultListener
- Struts2-监听返回结果(PreResultListener)
- Struts2.x 之 使用PreResultListener
- Struts2拦截器(Interceptor) PreResultListener
- Struts2-学习笔记系列(7)-PreResultListener
- Struts2拦截器-PreResultListener
- 【java开发系列】—— struts2简单入门示例
- Struts2拦截器的简单示例
- Struts2拦截器简单示例
- PreResultListener
- Struts2入门(2): 应用简单示例
- 复习Struts2之简单的登录示例
- 【java开发系列】—— struts2简单入门示例
- Action的监听器——PreResultListener
- 一个简单的Struts2的 示例