动态获取Struts2执行动作的Method Name

来源:互联网 发布:淘宝网数据包下载 编辑:程序博客网 时间:2024/05/01 23:09

使用拦截器来实现!


package org.game.interceptor;


import org.hibernate.Session;
import org.hibernate.Transaction;
import org.apache.struts2.ServletActionContext;
import org.game.util.HibernateUtil;

/**
 * 处理事务
 * @author zhaolong
 */
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;


@SuppressWarnings("serial")
public class HibernateInterceptor extends AbstractInterceptor {


@Override
public String intercept(ActionInvocation invocation) throws Exception {

Session session = HibernateUtil.getSession(); 
Transaction tx = session.beginTransaction();
System.out.println("................begin transaction................");
String result = null;
try {
result = invocation.invoke();
String name = invocation.getProxy().getMethod();
  // 保存方法名
  //ActionContext.getContext().put("method", name);

System.out.println("Method Name :-->" + name);
tx.commit();
System.out.println("................transaction commit................");
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}
return result;
}


}