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部分的处理(需要使用观察者模式解耦)等。在后续演化版本中逐渐加入。
源代码见:
下一个版本,将实现“增加”武器功能。
这篇文章上的评论的 RSS feed TrackBack URI