0

私のフォームには次のような 2 つの配列があり、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>

表示されている結果をソートできるようにしたい。2 つの配列があるので、2 つの配列をマージして並べ替え、新しいマージされた配列を使用して結果を表示できます。

しかし、これには jsp ファイルも変更する必要があります。そして、このようにするのは必要以上に大変だと思います。

jsp ファイルを変更したり、配列をマージしたりせずにこれを行う別の方法はありますか?

4

1 に答える 1

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)]

私がそこに設定したコンパレータは、最初に最も短いコンパレータ、最後に最も長いコンパレータを持つように設定されています。コンパレータは好きなように調整できます。

于 2012-08-07T17:33:23.747 に答える