博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2开发时通过interceptor拦截器实现输入数据过滤前后空格的功能 ...
阅读量:6833 次
发布时间:2019-06-26

本文共 2451 字,大约阅读时间需要 8 分钟。

首先在拦截器注册文件interceptorContext.xml中声明拦截器:

  然后配置struts.xml文件,加入拦截队列

/index.jsp?url=${url}
   这里注意一下,在拦截器栈中,trimInterceptor的位置要在defaultStack之上,否则不会生效甚至报错

  下一步就是实现拦截器代码了

        这里在开发中犯了一次二,就是在取参数值的时候,一开始得到value后直接.toString(),然后trim()了,再塞回去,可是报错,参数违法什么的;之后输出了class类型:

System.out.println(value.getClass());
输出为:

class [Ljava.lang.String;  class [Ljava.lang.String;  class [Ljava.lang.String;  class [Ljava.lang.String;  class [Ljava.lang.String;
当时看成了String类型了,一看没错啊,怎么不对呢,找了会问题,才哗然大悟,form里面的参数其实是数组的,相同name提交后得到是参数是数组的数据,而且显示的class显示为String[]的,然后修改输出一看OK了

System.out.println(value.getClass()+"--"+JsonUtil.toJson(value));
class [Ljava.lang.String;--["22222"]  class [Ljava.lang.String;--[""]  class [Ljava.lang.String;--[""]  class [Ljava.lang.String;--["11111"]  class [Ljava.lang.String;--["3333"]
package main.com.eca.interceptor;    import java.util.Iterator;  import java.util.Map;  import java.util.Set;    import org.apache.commons.lang.StringUtils;    import com.opensymphony.xwork2.ActionInvocation;  import com.opensymphony.xwork2.interceptor.Interceptor;    public class TrimInterceptor implements Interceptor {      private static final long serialVersionUID = -2578561479301489061L;        public void destroy() {      }        /*       * @Description:拦截所有参数,去掉参数空格      * @see com.opensymphony.xwork2.interceptor.Interceptor#intercept(com.opensymphony.xwork2.ActionInvocation)      */      public String intercept(ActionInvocation invocation) throws Exception {                    Map map=invocation.getInvocationContext().getParameters();          Set keys = map.keySet();                    Iterator iters = keys.iterator();                  while(iters.hasNext()){                      Object key = iters.next();                      Object value = map.get(key);                      map.put(key, transfer((String[])value));                  }          return invocation.invoke();      }            /**      * @Description: 遍历参数数组里面的数据,取出空格      * @param params      * @return      */      private String[] transfer(String[] params){          for(int i=0;i

转载地址:http://oonkl.baihongyu.com/

你可能感兴趣的文章
网站安全问题的出现及解决方法
查看>>
java io FilterInputStream BufferedInputStream
查看>>
[转]shell脚本中echo显示内容带颜色
查看>>
有趣的GodMode
查看>>
TypeScript 类
查看>>
萌新入职注意事项-没WIFI也要看的秘技
查看>>
服务器压力测试软件 .
查看>>
循环队列的实现
查看>>
华为OSPF多区域实验
查看>>
Hibernate的unsaved-value
查看>>
Linux SVN 命令详解
查看>>
Vmware PowerCL 主机硬件的单元
查看>>
eclipse如何配置自带jdk
查看>>
Android笔记1——开发前奏1开发环境搭建和开发工具使用介绍
查看>>
DNS故障处理一例(转)
查看>>
10月第4周中国五大顶级域名净增约4.2万 美国净减14.5万
查看>>
12月14日中国域名商解析量17强:易名增幅最大
查看>>
全球六大国际域名解析总量突破1.6亿 共净增48万
查看>>
HTML5+CSS3 loading 效果收集
查看>>
雅虎确认网站管理员工具 Site Explorer 将于11月21日关闭
查看>>