Göreceli olarak basit ve bir duvarın içine girecek gibi görünen bir şey yapmaya çalışıyorum.JSP İfadeler ve Dinamik Öznitelik Adları
Diyelim ki, products
adı altında bir istek özelliği olarak gösterdiğim ürünlerin bir listesini aldım. Ayrıca, her ürünün bir id
alanına sahip olduğunu ve hangisinin seçileceğini belirtmek için selectedProduct_<product-id>
şeklinde ayarlanmış bir dizi istek özelliğim olduğunu da varsayalım.
Böyle bir Map
içine seçilen tüm kimlikleri yerleştirerek ve buna karşı kontrol etme gibi bu bilgileri temsil etmek iyi yollar vardır anlıyorum ama ı herhangi bir nedenle bu yaklaşıma erişimi olmayan varsayalım.
yüzden yapmak istiyorum neyi products
yinelerler ve geçerli ürün için ayarlanmış bir selectedProduct_...
özelliği yoksa yalnızca bazı biçimlendirme yayarlar. şöyle birşey:
<c:forEach var="product" items="${products}">
<c:if test="${! empty selectedProduct_${product.id}}">
<div class="productId">${product.id}</div>
</c:if>
</c:forEach>
Ama ${! empty selectedProduct_${product.id}}
ölür gibi çalışmıyor tabii
${! empty selectedProduct_17}
: Ben ifadeye ürün-id hardcode eğer çalışacaktır ne
gibi olduğunu. Açıkçası bu pratik değil, ama umarım neyi başarmaya çalıştığımı gösterir. Temelde ben gerekir:
forEach
döngü içinde her yineleme için kullanılacak doğruselectedProduct_...
değerini belirler.<c:set var="key" value="selectedProduct_${product.id}"/>
kadar basit bir şey bunu yapar, ancakkey
'u nasıl alacağımı bilmiyorum ve bu adla istek özniteliğinin değerini almak için onu kullan ((<% %>
bloğunun içinde hile yapmadan Java kodunu çalıştırmadan).- İsmini 1 olarak belirlediğim istek özelliğinin değerini öğrenin. Bu zor kısmı gibi görünüyor.
Bu, salt JSP/JSTL kullanılarak yapılabilir mi? Bunu çözmek için <% %>
'un içinde bazı Java kodlarını çalıştırabileceğimi biliyorum, ama sanki son derece kötü bir şekilde olurdu. Elbette daha zarif bir çözüm var mı?