仅使用struts 2使用ajax和刷新列表从列表中删除用户

San*_*sth 4 struts2 struts2-jquery

我的清单如下: -

UserName   action
=================
abcd       delete
1234       delete
Run Code Online (Sandbox Code Playgroud)

我的jsp代码如下: -

<table>
    <tr>
        <th>UserName</th>
        <th>Action</th>
    </tr>
    <s:iterator value="list">
        <tr>
            <td><s:property value="name" /></td>
            <td><a href="<s:url action='deleteUser'/>">delete</a></td>
        </tr>
    </s:iterator>
</table>
Run Code Online (Sandbox Code Playgroud)

如何使用从列表中删除用户的ajax调用操作并刷新列表

Cod*_*ace 6

对于简单的ajax刷新功能,我会这样做

首先是包含这样的列表的div

<div id="results">
<s:include page="ListUser.jsp">
</div>
Run Code Online (Sandbox Code Playgroud)

ListUser.jsp将包含我要刷新和显示的用户列表

<table>
    <tr>
        <th>UserName</th>
        <th>Action</th>
    </tr>
    <s:iterator value="list">
        <tr>
            <td><s:property value="name" /></td>
            <td><a class=""linkDelete" href="<s:url action='deleteUser'/>">delete</a></td>
        </tr>
    </s:iterator>
</table>
Run Code Online (Sandbox Code Playgroud)

一个简单的jquery ajax请求看起来像这样

$("a.linkDelete").click(function(e) {
  //this line will prevent the default form submission on click of link
  e.preventDefault();
  //fire the ajax request on this object referring to the clicked anchor link element
  $(this).ajax({
  url: "DeleteAction.action",
  cache: false
}).done(function( html ) {
  $("#results").append(html);
});
});
Run Code Online (Sandbox Code Playgroud)

DeleteAction.action是struts.xml,如下所示

<action name="DeleteAction" method="deleteUser">
<result>/WEB-INF/jsp/ListUser.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)

如果您还有其他操作也有结果链接将您带到结果页面,那么以下将是struts.xml中的另一个条目

<action name="ResultAction" method="goToResultPage">
<result>/WEB-INF/jsp/Result.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)

您的Result.jsp将包含具有id结果的div.

欢呼:)