• struts2 之 ajax


    1. 在struts2中也可以像servlet一样来实现ajax---通过HttpServletResponse来实现。

    2.实现步骤:

      a)Action代码如下:

    public class AjaxAction {
        private String name;
        public String ajax() throws IOException{
            HttpServletResponse resp = ServletActionContext.getResponse();
            if("siggy".equals(name))
            resp.getWriter().print("true");
            else{
                resp.getWriter().print("false");
            }
            return null;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    b) 配置文件如:

    <action name="ajax" class="cn.sxt.action.AjaxAction" method="ajax">
            </action>

    c)Jsp:

    <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
          <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
          <script type="text/javascript">
              $(function(){
                  $("#name").blur(function(){
                      $.post("ajax.action",{'name':$(this).val()},function(data){
                          if("true"==data){
                              $("#name").css("border","1px solid red");
                          }else{
                              $("#name").css("border","1px solid green");
                          }
                      });
                  });
              });
          
          </script>
      </head>
      <body>
        用户名:<input type="text" id="name" />
      </body>

    3.通过struts2 的插件来实现异步操作:

    a) 导入 jar 包:

    asm-3.3.jar
    asm-commons-3.3.jar
    asm-tree-3.3.jar
    commons-beanutils-1.8.0.jar
    commons-collections-3.1.jar
    commons-fileupload-1.2.2.jar
    commons-io-2.0.1.jar
    commons-lang-2.4.jar
    commons-lang3-3.1.jar
    commons-logging-1.1.1.jar
    ezmorph-1.0.6.jar
    freemarker-2.3.19.jar
    jackson-core-asl-1.9.2.jar
    jackson-mapper-asl-1.9.2.jar
    javassist-3.11.0.GA.jar
    json-lib-2.3-jdk15.jar
    ognl-3.0.5.jar
    struts2-core-2.3.4.jar
    struts2-json-plugin-2.3.4.jar
    xwork-core-2.3.4.jar

    b)编写Action类:

    public class JsonAction {
        private JSONArray root;
    
        public String execute(){
            List<User> list = new ArrayList<User>();
            list.add(new User(1,"张三",33));
            list.add(new User(2,"李四",23));
            list.add(new User(3,"王五",34));
            root = JSONArray.fromObject(list);
            return Action.SUCCESS;
        }
        public JSONArray getRoot() {
            return root;
        }
    
        public void setRoot(JSONArray root) {
            this.root = root;
        }
    }

    c) 配置Action

    <action name="json" class="cn.sxt.action.JsonAction">
                <result type="json">
                    <param name="root">root</param>
                </result>
            </action>

    d)jsp页面:

    <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
      <script type="text/javascript">
          $(function(){
              $("#btn").click(function(){
                  $.post("json.action",function(data){
                      var html="";
                      for(var i=0;i<data.length;i++){
                          html+="<tr><td>"+data[i].id+"</td><td>"+data[i].name+"</td><td>"+data[i].age+"</td></tr>";
                      }
                      $("#content").html(html);
                  });
              });
              
          });
      </script>
      </head>
      
      <body>
      <button id="btn">获取数据</button>
        <table width="80%" align="center">
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>年龄</td>
            </tr>
            <tbody id="content"></tbody>
        </table>
      </body>

    注意:以上是返回JSONArray,如果直接返回对象写法如下:

    public class Json1Action {
        private List<User> list;
        public String execute(){
            list = new ArrayList<User>();
            list.add(new User(1,"张三",33));
            list.add(new User(2,"李四",23));
            list.add(new User(3,"王二麻子",34));
            return Action.SUCCESS;
        }
        public List<User> getList() {
            return list;
        }
        public void setList(List<User> list) {
            this.list = list;
        }
    }

    配置如下:

    <action name="json" class="cn.sxt.action.Json1Action">
                <result type="json">
                    <param name="root">list</param>
                </result>
            </action>
  • 相关阅读:
    springcloud(Feign)三
    Hibernate @TableGenrator表管理主键生成策略
    Hibernate @Entity注解配置说明
    Hibernate @SequenceGenerator的注解介绍
    java StrutsTypeConverter的使用
    structs2 DefaultTypeConverter类型转换说明
    Struts2(XWork)拦截器的功能介绍:
    structs2 防止表单的重复提交token
    Structs ActionProxy深度阅读
    Structs2 request_locale国际化介绍
  • 原文地址:https://www.cnblogs.com/forever2h/p/6734232.html
Copyright © 2020-2023  润新知