8、用户名唯一进行ajax验证
    JSONArray json = JSONArray.fromObject(list);
    String jsonString = json.toString();
    out.println(jsonString);//输出到回调函数
    自定义结果集实现ajax验证:
       
     var param = {
        username:usernmae
     }
     $.post("user_checkUserName.action",param,function(data){
          
     });
     $.ajax();
         struts2+ajax+json
        能返回的值:action中的所有getXxx(),返回到客户端就是xxx
     struts2缺点:
         $.post和struts2结合,action里面出现异常,照样回调,回调函数参数data的数据是struts2经典的模板错误页面的信息
         $.post与servlet结合,servlet里面出现异常,回调不执行
         $.post只能接受成功的条件下的返回数据,如果需要接受错误的信息,使用$.ajax
         $.ajax与servlet结合的success、error回调完全正常,servlet抛出异常时,执行error
         struts2:谁调用action,谁就去处理错误,(DefaultActionInvocation)
         struts2只要不是容器问题,所有的错误信息都会归到一个模板页面error(struts2:谁调用action,谁就去处理错误(DefaultActionInvocation,dispacher、))
         $.ajax与struts2结合,无论action是否出现错误,总是执行success回调函数,不执行error函数
     错误的集中管理和显示:
           service层加上了事务通知,我们还可以给其加上异常通知,其范围为service层所有包中的类的所有方法,
         加入当dao层出现异常后,异常要抛给service层,service层上的异常通知被执行,再把错误信息放在值栈里面,
         然后显示给页面
     struts2与ajax整合的总结
        整合步骤:
           1、导包struts-json-plugin
                  在该jar包中有一个struts-plugin.xml文件,
               文件中的信息反映了:1、有一个自定义的package:json-default,有一个自定义的结果集,该结果集处理哪些数据返回客户端
              在struts2配置文件中,所有package继承json-default,result类型是json,没有文本值
          action中所有的getXxx方法返回客户端,将以{xxx:'aaa'}形式返回
          针对struts2与ajax结合,无论采用$.post、$.ajax都捕获不到服务器产生的错误,其内部处理机制不好,
        但是$.ajax捕获错误在serlvet里面能够做到
9、假如现在要弄一个树的插件,该怎么选用框架?struts与spring mvc你怎么选择?
    这些问题应该站在一个团队的角度来解决:
        首先struts2与spring mvc都是很成熟的两个框架,选择点:团队的综合知识层次,团队成员会哪些,尽量用哪些
         还得考虑框架成熟度,不成熟的框架肯定不能用,再者选用的框架的资料要全。
    树的插件比较多,Z-tree的资料也比较多,应该选用这类的框架或者插件。jquery面向对象并不明显,而Z-tree更加的面向对象