struts2处理Ajax JSON时的一些东东

2019-04-15 19:19发布

org.apache.struts2.json.JSONInterceptor.intercept(JSONInterceptor.java:172) struts 2有一个处理json请求的插件: 处理流程: 原图地址: http://cqjava.iteye.com/upload/picture/pic/48651/47962312-47c6-3a67-a7f6-795e666ba572.gif   struts.xml中的配置: 
  1. <package name="default" extends="json-default">  

         
          .*
          true
    text/html
         

         
          .*
          true
    text/html
         

         
          .*
          true
       text/html         
         

       
  默认返回json的数据的时候会调用Action中的所有getXXX()方法(推荐:Action中除属性的get方法外,不要使用getXXX方法充当Action执行的方法。)。  .*  //输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式 过滤所有属性  之所有这么写:是因为自定义了个struts2的拦截器extends StaticParametersInterceptor 这个里面通过捕获异常进行如下处理  String msg = "{errorMsg:'" + e.getMessage() + "'}";
 response.setContentType("text/xml; charset=UTF-8");
 response.setCharacterEncoding("UTF-8");  response.setContentLength(msg.getBytes("UTF-8").length);
 PrintWriter out = response.getWriter();
  out.print(msg); 因此在客户端js中可以通过判断返回data的errorMsg是否存在来判断是否执行Success success:function(data){
      var dt = eval('('+ data +')');
      if(dt.errorMsg)
       alert(dt.errorMsg);
      else{
             alert('业务操作成功!');
      }  
true
 text/html    当返回成功时定义返回类型。否则有可能当成下载方法处理 listEutDto     返回指定的属性  还可以细化到属性对象下的属性
  1. <param name="excludeNullProperties">trueparam>   去除为null的属性。
  2. <param name="ignoreHierarchy">falseparam>  是否忽略父类中的属性
  3.     <param name="includeProperties">person.*, person.nameparam>    
  请求的URL为:/NewsAjax!****NewsAjax.action?******;   前面为Action名字,后面为方法名字。 方法的名字不需要在struts.xml中进行配置。