Moin moin,
Ich habe ein Problem, ich habe folgende Klassen:
Nun habe ich folgendes Problem:
Das ganze soll auf einer JSP angezeigt werden (zum Sortieren gibt es hier auch schon einen Thread).
Aber wie kann ich den ganzen Mist zusammen fassen?
Beispiel:
Ich bekomme also eine Liste mit folgenden Werten:
ID|BESITZER|ORT|HAUSNUMMER
1|Gossi|Bassum|1
3|Gossi|Bassum|3
5|Gossi|Bassum|9
9|Gossi|Bassum|14
8|Gossi|Bassum|63
2|Gossi|Syke|2
6|Gossi|Syke|121
Jetzt möchte ich aber, dass nur einmal Gossi erscheint und nur einmal Bassum und Syke, also so:
ID|BESITZER|ORT|HAUSNUMMER
1|Gossi|Bassum|1
3|||3
5|||9
8|||63
9|||14
2||Syke|2
6|||121
Die Tabellen werden in der JSP so angelegt:
Wie kann ich nun also die ersten 1,2 oder 3 (je nach Anzahl der Parameter) Spalten zusammenfassen?
PS:
Der Comparator:
Ich habe ein Problem, ich habe folgende Klassen:
Java:
package de.narz.portalweb.anzeige.domain;
import java.util.List;
public class General {
private List<GeneralValue> param;
private List<String> spaltenNamen;
public List<GeneralValue> getParam() {
return param;
}
public void setParam(final List<GeneralValue> param) {
this.param = param;
}
public List<String> getSpaltenNamen() {
return spaltenNamen;
}
public void setSpaltenNamen(final List<String> spaltenNamen) {
this.spaltenNamen = spaltenNamen;
}
}
Java:
package de.narz.portalweb.anzeige.domain;
public class GeneralValue {
private String name;
private String value;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(final String value) {
this.value = value;
}
}
Nun habe ich folgendes Problem:
Das ganze soll auf einer JSP angezeigt werden (zum Sortieren gibt es hier auch schon einen Thread).
Aber wie kann ich den ganzen Mist zusammen fassen?
Beispiel:
Ich bekomme also eine Liste mit folgenden Werten:
1|Gossi|Bassum|1
3|Gossi|Bassum|3
5|Gossi|Bassum|9
9|Gossi|Bassum|14
8|Gossi|Bassum|63
2|Gossi|Syke|2
6|Gossi|Syke|121
Jetzt möchte ich aber, dass nur einmal Gossi erscheint und nur einmal Bassum und Syke, also so:
1|Gossi|Bassum|1
3|||3
5|||9
8|||63
9|||14
2||Syke|2
6|||121
Die Tabellen werden in der JSP so angelegt:
HTML:
<c:forEach items="${model.generalList}" var="gen">
<tr>
<c:forEach items="${gen.param}" var="p">
<td> <c:out value="${p.value}"/> </td>
</c:forEach>
</tr>
</c:forEach>
Wie kann ich nun also die ersten 1,2 oder 3 (je nach Anzahl der Parameter) Spalten zusammenfassen?
PS:
Der Comparator:
Java:
public class RowComparator implements Comparator<General> {
@Override
public int compare(final General gen1, final General gen2) {
General row1 = gen1;
General row2 = gen2;
if (row1.getParam().get(0) != null && row2.getParam().get(0) != null) {
int paramNr = row1.getParam().size();
if (paramNr == 1) {
return new CompareToBuilder().append(
row1.getParam().get(0).getValue(),
row2.getParam().get(0).getValue()).toComparison();
}
if (paramNr == 2) {
return new CompareToBuilder()
.append(row1.getParam().get(0).getValue(),
row2.getParam().get(0).getValue())
.append(row1.getParam().get(1).getValue(),
row2.getParam().get(1).getValue())
.toComparison();
}
if (paramNr >= 3) {
return new CompareToBuilder()
.append(row1.getParam().get(0).getValue(),
row2.getParam().get(0).getValue())
.append(row1.getParam().get(1).getValue(),
row2.getParam().get(1).getValue())
.append(row1.getParam().get(2).getValue(),
row2.getParam().get(2).getValue())
.toComparison();
}
}
return 0;
}
}