怎样获取action的name或者method
我想实现一个功能,就是在页面每次发起请求的时候,我通过过滤器来获取这个action的name或者method。
<action name="queryh" class="cn.com.norm.web.action.QueryAction" method="queryByHttp">
<result type="json" />
</action>
String getName = ServletActionContext.getActionMapping().getName();
System.out.println("-----getName----->>"+getName);
package cn.com.faqm.tool;
import java.io.IOException;
import javax.servlet.*;
import org.apache.struts2.ServletActionContext;
public class OpFilter implements Filter {
protected FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterchain) throws IOException, ServletException {
if(servletRequest.getParameter("actId") != null && !servletRequest.getParameter("actId").equals("")){
String getName = ServletActionContext.getActionMapping().getName();
System.out.println("-----getName----->>"+getName);
}
filterchain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
this.filterConfig = null;
}
}
2012-12-12 15:00:19 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at org.apache.struts2.ServletActionContext.getActionMapping(ServletActionContext.java:85)
at cn.com.faqm.tool.OpFilter.doFilter(OpFilter.java:19)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)