1
<c:set var="nameLookup" value="${names}" />
<c:forEach var="result" items="${results}">
    <tr>        
        <td>${result.uglyDisplayName}</td>
        <td>${result.phonenum}</td>
    </tr>
</c:forEach>

これは、私が編集しようとしているjspからの抜粋です。

結果は、List<Object>コントローラーからModelAndViewに返されます。コントローラーには、それぞれとObjectgetUglyDisplayNameありgetPhonenumます。それがどのように機能しているかは実際にはわかりません。jspはgetClass().getName()舞台裏で何かをしていると思いますか?そのプロセスへのポインタは、啓発的です。とにかく、その部分は機能しています。

コントローラに、ModelAndViewで返される別のオブジェクトを追加しました。これは、醜い表示名が鍵となる、より良い表示名を持つHas​​hMapです。だから私はその最初のtdを次のようなものに置き換えたいと思います:

<td>${nameLookup.get(result.uglyDisplayName)}</td>

これは明らかに機能しません、または私はここに投稿しません。先に進み、(一番上の行)の下のModelAndViewにHashMapを配置した名前に変数を設定しましたが、それがそのオブジェクトを取得する正しい方法かどうかはわかりません。

4

1 に答える 1

2

最初の部分(「JSPが行っていること」)については、JSP式言語を参照してください。

2番目の部分については、次を試してください。

<td>${nameLookup[result.uglyDisplayName]}</td>

うまくいくとは断言したくありませんが(JSPを使用してから久しぶりです)、試してみる価値はあります。

于 2009-06-06T19:22:26.293 に答える