分享

用struts2 and prototype.js实现无刷新删除

 fanjj 2009-07-09
一、首先下载struts2-dojo-plugin-2.1.6.jar 和 prototype.js(网址:http://www./download)
导入包,并在WebRoot下建js文件夹,把prototype.js和application.js放入js下
核心jar包如下:
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
commons-fileupload-1.2.1.jar
commons-logging-1.0.4.jar
struts2-dojo-plugin-2.1.6.jar
二、应用名ajax,包名ajax.noFresh,类名AjaxNoFresh.java
AjaxNoFresh.java代码如下:
package ajax.noFresh;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import ajax.entity.User;
import com.hx.qpxnet.util.JdbcUtil;
import com.opensymphony.xwork2.ActionSupport;
public class AjaxNoFresh extends ActionSupport {
 static Connection conn=JdbcUtil.getConnection();
 Statement sta=null;
 ResultSet rs=null;
 private List list=null;
 private int id;
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public List getList() {
  return list;
 }
 public void setList(List list) {
  this.list = list;
 }
 public String execute() throws Exception{
  sta=conn.createStatement();
  conn.setAutoCommit(false);
  String sql="select id,username,password from fjjuser";
  rs=sta.executeQuery(sql);
  User user =null;
  list = new ArrayList();
  while(rs.next()){
   user = new User();
   user.setId(rs.getInt(1));
   user.setUsername(rs.getString(2));
   user.setPassword(rs.getString(3));
   list.add(user);
  }
  conn.commit();
  return SUCCESS;
 }
 public String delete()throws Exception{
  sta=conn.createStatement();
  conn.setAutoCommit(false);
  String sql="delete from fjjuser where id="+id;
  sta.executeUpdate(sql);
  conn.commit();
  return SUCCESS;
 }
}
三、xml代码如下:
<struts>
   <package name="ajaxdemo.action" extends="struts-default"> 
        <action name="ajaxno" class="ajax.noFresh.AjaxNoFresh">
            <result>/AjaxNoFresh1.jsp</result>
        </action>
        <action name="delete" class="ajax.noFresh.AjaxNoFresh" method="delete">
            <result type="redirectAction">show</result>
        </action>
        <action name="show" class="ajax.noFresh.AjaxNoFresh">
            <result>/AjaxNoFresh2.jsp</result>
        </action>
   </package>
</struts>
四、jsp页面
AjaxNoFresh1.jsp代码:
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  
    <head>  
        <title>显示所有用户</title>  
        <meta http-equiv="pragma" content="no-cache">  
        <meta http-equiv="cache-control" content="no-cache">  
        <script type="text/javascript" 
            src="${pageContext.request.contextPath}/js/prototype.js"></script>  
        <script type="text/javascript"
            src="${pageContext.request.contextPath}/js/application.js"></script>  
    </head>  
<body>  
    <div id="div_ajaxNoFresh2">  
        <s:include value="AjaxNoFresh2.jsp"/>  
    </div>  
</body>  
</html> 
 
AjaxNoFresh2.jsp
 
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 
  <body>
      <table border="1" align="center">
     <tr>
       <td>id</td>
       <td>username</td>
       <td>password</td>
       <td>delete</td>
     </tr>
     </br>
    <s:iterator value="list" status="stats">
      <tr>
        <td><s:property value="id"/></td>
        <td><s:property value="username"/></td>
        <td><s:property value="password"/></td>
        <td>
           <!-- <a href="/ajax/delete.action?id=<s:property value="id"/>">delete</a> -->
           <s:a href="javascript:deleteUser(%{id})">delete</s:a>
        </td>
      </tr>
      </br>
    </s:iterator>
    </table>
  </body>
</html>
 
application.js
function deleteUser(id){
var url = "delete.action?id="+id;  
    new Ajax.Updater (  
        'div_ajaxNoFresh2',  
        url,   
        {  
            onLoading:function (){  
            },  
            onSuccess:function (request) {  
                alert('删除成功');  
            },   
            onFailure:function (request) {  
                alert("服务器故障,请稍候重试");  
            }  
        }  
    );  
}
最后通过访问http://localhost:8080/ajax/ajaxno.action,点击delete链接看看,是不是实现无刷新删除了,OK,完了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多