• [JavaWeb基础] 017.Struts2 和 ajax交互简介


    在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术Ajax,那么我们的Struts2框架在这一方面是如何实现的呢,其实也很简单,下面我带大家一起了解下。

    1.首先我们需要导入两个依赖包json-libstruts2-json-plugin,这是对json支持的解析包。

    2.我们需要创建一个Action类,和其他的都一样

    package com.babybus.sdteam.action;
    
    import java.util.List;
    
    import com.babybus.sdteam.bo.ManageServlet;
    import com.babybus.sdteam.vo.Student;
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class QueyUserAjaxAction extends ActionSupport implements Action {
    
    // 序列化ID private static final long serialVersionUID = 1L;
       // 搜索内容,查询用 private String searchname;
    // 搜索结果列表 private List<Student> resultList; public String getSearchname() { return searchname; } public void setSearchname(String searchname) { this.searchname = searchname; } public List<Student> getResultList() { return resultList; } public void setResultList(List<Student> resultList) { this.resultList = resultList; } public String loadUserInfo() throws Exception { // 创建搜索条件 Student querystudent = new Student(); querystudent.setStudentname(searchname);

    // 查询结果集合 ManageServlet manageServlet = new ManageServlet(); this.resultList = manageServlet.getStudentByCondition(querystudent); return "userInfo"; } }

     3.配置struts.xml,首先要注意的是package中的extends要改成json-default,返回的result要是json格式的

    <!-- extends = 'json-default' 这个必须指定 -->
    <package name="MyWebProject1" namespace="/" extends="json-default"> <action name="queyuserajax" class="com.babybus.sdteam.action.QueyUserAjaxAction" method="loadUserInfo">
    <!-- type = 'json' 类型必须是json --> <result name="userInfo" type="json" ></result> </action> </package>

     4.前端页面的ajax调用方法

    function queryUserInfo()
      {
        var queryName = $("#searchText").val();
    
          $.ajax({
    // 查询的地址 url:'queyuserajax.action',
    // 请求方式 type:'post',
    // 传递参数 data:"searchname=" + queryName,
    // 数据类型 dataType:'json',
    // 成功后回调函数 success:function (data) { var innerhtml = "<tr><th>uid</th><th>学生姓名</th><th>年龄</th><th>班级</th><th>操作</th></tr>"; if(data.resultList && data.resultList.length > 0) {
    // 清空表格 $("#resultTable").html("");
    // 遍历结果集填充 $(data.resultList).each(function (i, value) { innerhtml += "<tr>"; innerhtml += "<td>" + value.id + "</td> "; innerhtml += "<td>" + value.studentname+ "</td> "; innerhtml += "<td>" + value.age+ "</td> "; innerhtml += "<td>" + value.classname+ "</td> "; innerhtml += "<td><a href='AddUser.jsp?id=" + value.id + "'>修改</a>|"; innerhtml += "<a href='Mangage?method=del&userid=" + value.id + "' onclick='return confirm('确定要删除么?')' }>删除</a></td>"; innerhtml += "</tr> "; }); } $("#resultTable").html(innerhtml); } }); }

     5.从以上几步我们就可以完成ajax和struts2的交互了。

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 

    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4805790.html

  • 相关阅读:
    [LeetCode] 1131. Maximum of Absolute Value Expression 绝对值表达式的最大值
    [LeetCode] 1130. Minimum Cost Tree From Leaf Values 叶值的最小代价生成树
    [LeetCode] 1129. Shortest Path with Alternating Colors 颜色交替的最短路径
    [LeetCode] 1128. Number of Equivalent Domino Pairs 等价多米诺骨牌对的数量
    [LeetCode] 1125. Smallest Sufficient Team 最小的必要团队
    [LeetCode] 1124. Longest Well-Performing Interval 表现良好的最长时间段
    [LeetCode] 1122. Relative Sort Array 数组的相对排序
    Gitalk 自动初始化评论
    [LeetCode] 1111. Maximum Nesting Depth of Two Valid Parentheses Strings 有效括号的嵌套深度
    [LeetCode] 1110. Delete Nodes And Return Forest 删点成林
  • 原文地址:https://www.cnblogs.com/superdo/p/4805790.html
Copyright © 2020-2023  润新知