سؤال

<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 من وحدة التحكم، منها كل منها Object لديه أ getUglyDisplayName و getPhonenum. وبعد أنا لست واضحا فعلا حول كيفية عمل ذلك. أعتقد أن JSP يقوم بذلك getClass().getName() أو شيء وراء الكواليس؟ أي مؤشرات على هذه العملية ستكون تنورة. على أي حال، هذا الجزء يعمل.

في وحدة التحكم، قمت بإضافة كائن آخر ليتم إرجاعه في ModelandAndView. إنها HASHMAP تحتوي على أسماء عرض أجمل هي أسماء العرض القبيحة هي المفاتيح. لذلك أريد أن استبدال هذا النوع الأول مع شيء مثل هذا:

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

هذا لا يعمل، من الواضح، أو لن أشرك هنا. ذهبت إلى الأمام وقم بتعيين var إلى الاسم الذي أضعه hashmap في modelandview تحت (الخط العلوي) ولكن لست متأكدا مما إذا كانت هذه هي الطريقة الصحيحة للحصول على هذا الكائن.

هل كانت مفيدة؟

المحلول

للجزء الأول ("ما يفعله JSP") انظر لغة التعبير JSP..

للجزء الثاني، حاول:

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

أنا لا أحب أن أقسم ستعمل (إنه وقت طويل منذ أن استخدمت JSP) لكن الأمر يستحق المحاولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top