我的表单中有两个数组,我使用jsp向用户显示数组的值。
Trip[] tripArray = new Trip[];
Route[] routeArray = new Route[];
Trip Class:
public class Trip{
private String name;
private String address;
private String job;
}
Route class:
public class Route{
private String myName;
private String myAddress;
private String myJob;
}
我的jsp文件:
<logic: notEmpty name="myForm" property="tripArray">
<logic:iterate id="data" name="myForm" property="tripArray" type="com.example.Trip">
<td><bean:write name="data" property="name" /></td>
<td><bean:write name="data" property="address"/></td>
<td><bean:write name="data" property="job"/></td>
</logic:iterate>
</logic:notEmtpty>
<logic: notEmpty name="myForm" property="routeArray">
<logic:iterate id="data" name="myForm" property="routeArray" type="com.example.Route">
<td><bean:write name="data" property="myName" /></td>
<td><bean:write name="data" property="myAddress"/></td>
<td><bean:write name="data" property="myJob"/></td>
</logic:iterate>
</logic:notEmtpty>
我希望能够对显示的结果进行排序。由于我有两个数组,我可以合并两个数组,对它进行排序并使用新的合并数组显示结果。
但这也需要我更改我的jsp文件。而且我认为这样做的工作量太大了,而且还没有必要这样做。
有没有其他方法可以做到这一点,而无需更改我的jsp文件和没有合并数组?
答案 0 :(得分:1)
使用Arrays.sort对数组进行排序:
String[] examples = new String[] {"test", "a", "long one", "", "one was blank (this is longest)"};
Arrays.sort(examples, new Comparator<String>() {
@Override
public int compare(String arg0, String arg1) {
if(arg0.length() < arg1.length())
return -1;
if(arg0.length() > arg1.length())
return 1;
return 0;
}
});
System.out.println(Arrays.toString(examples));
将有输出:
[, a, test, long one, one was blank (this is longest)]
我在那里设置的比较器设置为最短的,最长的;你可以根据需要调整比较器。