gwt weapon项目增加删除功能

为weapon项目(gwt实现基于spring的json应用实例)增加了删除功能。增加了基本的事件处理机制。主要是event包下面的类。

在原有列表功能基础上增加了删除功能。不过还不完善,没有加上地址栏历史处理部分。

主要需要解决的是,删除功能,因为改变了资源,通过的是POST方法(当然最好是用DELETE方法)。

在GWT客户端的POST写法是:

RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST,
“../delete.json”);
requestBuilder.setHeader(“Content-Type”,
“application/x-www-form-urlencoded”);

StringBuilder builder = new StringBuilder();

for (Integer id : selectedRows) {
builder.append(“id=”).append(id).append(“&”);
}

requestBuilder.setRequestData(builder.toString());

requestBuilder.setCallback(new RequestCallback() {

@Override
public void onResponseReceived(Request request, Response response) {
list();
}

@Override
public void onError(Request request, Throwable e) {
Window.alert(“error”);
}
});
try {
requestBuilder.send();
} catch (RequestException e) {
e.printStackTrace();
}

在服务器端使用的是spring,写法是:

@RequestMapping(value = “/delete.json”, method = RequestMethod.POST)
public String delete(@RequestParam(“id”) List<Integer> ids) {
for (Integer id : ids) {
data.remove(id.intValue());
}
return “delete”;
}

这里限制是POST方法提交才可以。

这个代码还有很多问题,比如对异常的处理,对GWT model部分的处理(需要使用观察者模式解耦)等。在后续演化版本中逐渐加入。

源代码见:

http://easymorse.googlecode.com/svn/tags/Weapons-0.2

下一个版本,将实现“增加”武器功能。

PDF格式創作    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply