JavaEE-------------------------自定义Struts 2拦截器得到请求参数
当在用Struts 2开发的时候,有遇到过前台传递参数后台,却不能直接看到,当前的Action到底是有哪个类的哪个方法来处理,返回结果是什么,执行时间是多少的问题,现在就一起来看看吧如何得到这些结果吧
我把相关的Jar包和说明文档放在这里了
使用
MyEclipse中在你需要的Struts 2 工程上选择”Build Path->Configure Build Path…”
选择”Add External JARs…”,找到本压缩包里的JAR文件的位置选择即可
在Struts 2的配置文件struts.xml中配置如下(仅仅是个示例,除了类名其他随意)
<interceptors> <interceptor name="bqdebug" class="com.bq.util.MyInterceptor" /> <interceptor-stack name="myStack"> <interceptor-ref name="bqdebug" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack" />
大体类似这样的结构,解释一下,在拦截器里自定义自己的拦截器栈然后把它和defaultStack绑在一起,然后把它们所在的这个栈设置为默认拦截器栈即可,这种配置方式和Struts 2自己的配置拦截器栈相同
控制台打印情况
------------------------Start-------------Designed By BaiQiang---------------------
开始拦截Action执行之前的动作2013-8-29 11:34:45---------------------------
得到请求IP:127.0.0.1
得到请求地址:http://127.0.0.1:8080/Server/getBook.action
得到请求方法:GET
得到的参数:id=10
执行类与方法com.bq.GetBook.execute()----------------
---------------------Action的方法开始执行---------------------
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
处理文件:file:/E:/Program%20Files%20(x86)/tomcat/apache-tomcat-6.0.30/apache-tomcat-6.0.30/webapps/Server/WEB-INF/classes/struts.xml
处理行位置:第23行
返回参数:success
返回地址:{location=/book.jsp}
拦截Action执行之后的动作2013-8-29 11:34:46
执行Action需要503毫秒
--------------------------------------End----------------------------------------------
------------------------Start-------------Designed By BaiQiang---------------------
开始拦截Action执行之前的动作2013-8-29 11:34:47---------------------------
得到请求IP:127.0.0.1
得到请求地址:http://127.0.0.1:8080/Server/changeBook
得到请求方法:POST
得到的参数:book.name=美术&book.detail=程序设计的艺术&book.id=10
执行类与方法com.bq.ChangeBook.execute()----------------
---------------------Action的方法开始执行---------------------
Book [id=10, name=美术, detail=程序设计的艺术]
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: update book set name=?, detail=? where id=?
处理文件:file:/E:/Program%20Files%20(x86)/tomcat/apache-tomcat-6.0.30/apache-tomcat-6.0.30/webapps/Server/WEB-INF/classes/struts.xml
处理行位置:第28行
返回参数:success
返回地址:{actionName=query}
拦截Action执行之后的动作2013-8-29 11:34:48
执行Action需要310毫秒
--------------------------------------End----------------------------------------------
That's All!