Java-ajax中字符串的对象
我正在建设一个网站,我有几个不同的部分,如指南,电影等,他们都应该有一个类似的按钮 因此,如果按下like按钮,我想增加DB中like的数量 我有不同的数据库模型,比如Java-ajax中字符串的对象,java,ajax,generics,Java,Ajax,Generics,我正在建设一个网站,我有几个不同的部分,如指南,电影等,他们都应该有一个类似的按钮 因此,如果按下like按钮,我想增加DB中like的数量 我有不同的数据库模型,比如UserGuides,Movies等等,我希望有一个通用的AJAX函数 if (obj.equals("UserGuides")) { ajaxLike(UserGuides.class, new UserGuides(), username, title); } 这意味着
UserGuides
,Movies
等等,我希望有一个通用的AJAX函数
if (obj.equals("UserGuides")) {
ajaxLike(UserGuides.class, new UserGuides(), username, title);
}
这意味着:
如果用户在指南上,他按下“like”,我想更新UserGuide上的like整数,等等
我是这样做到的
在AJAX帖子中,我将类定义为我想要更新的字符串,例如{obj:“UserGuides”}
,如果我想要更新UserGuide
现在我有了一个AJAX处理程序来处理我的所有请求
公共静态结果,如()抛出UnknownHostException、MongoException、,
DbAuthException{
Map<String, String[]> map = request().body().asFormUrlEncoded();
String username = map.get("username")[0];
String title = map.get("title")[0];
String obj = map.get("obj")[0];
if (username.equals("") || title.equals("") || obj.equals("")) {
return badRequest();
}
if (obj.equals("UserGuides")) {
ajaxLike(UserGuides.class, new UserGuides(), username, title);
return ok();
}
return badRequest();
现在我显然必须为我的所有类都这样做,但优点是我只需要一个处理程序
现在我的泛型函数如下所示
private static <T> void ajaxLike(Class<T> objClass, T obj, String username,
String title) throws UnknownHostException, MongoException,
DbAuthException {
Datastore ds = getDatabase();
Query<T> q = ds.createQuery(objClass).field("title").equal(title);
UpdateOperations<T> submitUpdate = ds.createUpdateOperations(objClass)
.inc("likes");
ds.update(q, submitUpdate);
ds.ensureIndexes();
}
private static void ajaxLike(类objClass,T obj,字符串username,
字符串标题)抛出UnknownHostException、MongoException、,
DbAuthException{
数据存储ds=getDatabase();
Query q=ds.createQuery(objClass).field(“title”).equal(title);
UpdateOperations submitUpdate=ds.createUpdateOperations(objClass)
.inc(“likes”);
更新(q,提交日期);
ds.ensureIndex();
}
- 它在atm机上运行良好,但这是一种良好的做法吗
- 您是否看到任何潜在的错误
- 有更好的方法吗
如果map没有用户名,你会在那里得到一个NPE。同样,在其他地方也一样。我的AJAX请求不可能得到一个NPE。我还应该检查它吗?你应该检查它,除非你想得到NPE。我刚刚检查了它。似乎如果我试图访问元素,它总是空的
String adsasdad=map.get(“adsasdad”)[0]
我始终可以访问它,该值仅为null。@Klein在服务层中验证参数总是好的。在服务层中,您不应该注意“ajax请求中始终有用户名”这一事实.services不依赖于它们上面的层才能完美工作。好吧,我的AJAX请求不可能获得NPE。我是否仍要检查它?除非你喜欢获得NPE,否则你应该检查它。好吧,我刚刚检查了它。如果我尝试访问元素,它似乎总是空的String adsasdad=map.get(“adsasdad”)[0]
我始终可以访问它,该值仅为null。@Klein在服务层中验证参数总是好的。在服务层中,您不应该注意“ajax请求中始终有用户名”这一事实。服务并不依赖于它们上面的层来完美地工作。
String username = map.get("username")[0];