【发布时间】:2014-08-17 09:43:17
【问题描述】:
我想过滤一个 CmisObjects 的数组列表,并将正确的对象(过滤器正确)放在另一个数组列表中。
我有 6 个字段需要检查,即 1 个文本输入、3 个选择框和 2 个日期输入。所以我想要与新数组列表中字段中的值匹配的对象。
我检查了 Stackoverflow 上的其他问题,其中一些问题相似,但我想知道是否有人通过一些示例代码有更清晰的答案。
提前致谢!
编辑 这是我现在拥有的一些代码,它只检查 2 个字段。
String zoekterm = request.getParameter("zoekterm").toLowerCase();
String zoektermselect = request.getParameter("zoektermselect");
String startdatum = request.getParameter("startdatum");
String einddatum = request.getParameter("einddatum");
String status = request.getParameter("status");
String type = request.getParameter("type");
ArrayList<CmisObject> alleDossiers = (ArrayList<CmisObject>) request.getSession().getAttribute("alledossiers");
ArrayList<CmisObject> filterlist = new ArrayList<CmisObject>();
for (CmisObject dossier : alleDossiers) {
String dossiernaam = dossier.getName().toLowerCase();
String dossierexternepartij = ((String) dossier.getPropertyValue("oc:bedrijfsnaam")).toLowerCase();;
String dossierstatus = ((String) dossier.getPropertyValue("oc:contractstatus"));
String dossiertype = ((String) dossier.getPropertyValue("oc:contracttype"));
if (zoektermselect.equals("Alle")) {
if (dossiernaam.contains(zoekterm) || dossierexternepartij.contains(zoekterm)) {
filterlist.add(dossier);
}
}
if (zoektermselect.equals("Dossiernaam")) {
if (dossiernaam.contains(zoekterm)) {
filterlist.add(dossier);
}
}
if (zoektermselect.equals("Externe partij")) {
if (dossierexternepartij.contains(zoekterm)) {
filterlist.add(dossier);
}
}
}
PrintWriter out = response.getWriter();
out.println("<html><head></head><body>");
int counter = 1;
for (CmisObject dossier : filterlist) {
out.println("<div id='noderef" + counter + "'>" + dossier.getId() + "</div>");
out.println("<div id='dossiernaam" + counter + "'>" + dossier.getName() + "</div>");
out.println("<div id='externepartij" + counter + "'>" + dossier.getPropertyValue("oc:bedrijfsnaam") + "</div>");
out.println("<div id='contracttype" + counter + "'>" + dossier.getPropertyValue("oc:contracttype") + "</div>");
counter++;
}
out.println("<div id='counter'>" + counter + "</div></body></html>");
【问题讨论】:
-
你有代码吗?你试过什么
-
@TFischer 直到现在我才想到它是如何工作的,因为我知道的唯一方法是为每种可能性编写一个“if”
标签: java list arraylist filter