2009-06-06 6 views
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の抜粋です。jspでjavaオブジェクトを使用する

結果は、各ObjectgetUglyDisplayNamegetPhonenumを有するの制御部からのModelAndViewに返されるList<Object>あります。私はそれがどのように働いているかについてはっきりしていません。私は、JSPがgetClass().getName()か何かの背後に何かをやっていると思いますか?そのプロセス上のあらゆるポインタが啓発されます。とにかく、その部分は働いています。

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

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

これはうまくいきません、または私はここに掲載されません。私は先に進んで、ModelAndViewのHashMapを(上の行)の下に置いた名前にvarを設定しましたが、そのオブジェクトで取得するのが正しいかどうかはわかりません。

+0

私はフォーマットを修正しました:http://stackoverflow.com/editing-helpを参照してください –

答えて

2

最初の部分(「JSPがやっていること」)は、JSP Expression Languageを参照してください。第二部のために

、試してみてください。

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

私はに好きではないだろうが、それがうまくいくを誓う(それは私がJSPを使用していたので、長い時間だ)が、それは試してみる価値はあります。

+1

ジョンは、彼が正しい傾向があるので、正しいです。 JSR 245(JEE6/JSP 2.1コンテナ)では非静的メソッドの呼び出しが実装されていることに注意してください。したがって、近い将来、次のような呼び出しが有効になります:nameLookup.get(result.uglyDisplayName) – McDowell

関連する問題