一、首先下载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,完了。
|
|