2011-05-21 20 views
5

JSP/İfade Dili ile elips kısaltması uygulamanın en iyi yolunun ne olduğunu merak ediyordum.Elipsi (kısaltılmış metin) ile JSP/EL

Şimdilik, fn: substring kullanıyorum, tamam, ancak metnin kesilmesi durumunda üç noktaya "..." sahip olmak istiyorum.

Web araması yaptığımda, Java Web Parts numaralı telefonun AbbreviateTag olduğunu buldum. Ancak daha iyi kütüphaneler olup olmadığını merak ettim ya da daha iyiyse kendi özel etiketimi topluyorum. Sen ne önerirsin?

+0

Bunu CSS ile yapmak daha iyi olmaz mıydı? – McDowell

+0

Metin taşması: ellipsis Firefox'ta çalışmıyor mu, yoksa başka bir yol biliyor musun? – stivlo

+0

ah, haklı görünüyorsun - hack ve jQuery eklentisi var gibi görünüyor, ama bu daha az ideal. – McDowell

cevap

2

mmbase'i nasıl kullanamadığımı anlayamadığımdan, SimpleTagSupport'u genişleten kendi özel etiketimi oluşturdum.

Bu şekilde çalışır:

<%@ taglib prefix="sti" uri="/WEB-INF/tlds/stivlo.tld" %> 
<p><sti:ellipsis>What a beautiful day.</sti:ellipsis></p> 
<p><sti:ellipsis maxLength="10">What a beautiful day.</sti:ellipsis></p> 

Çıktı:

What a beautiful day. 
What a bea… 

Ben de custom tag implementation on my blog dokümanlarda açıklanmıştır. Bu benim ilk özel etiketim, eğer daha iyi bir şey yapılabilirse, sizden duymaktan mutlu olurum.

+0

Kendi yanıtımı kabul ediyorum çünkü çalışmam için mmbase alamadım. – stivlo

3

MMBase etiket kitaplığında, elipsi destekleyen bir tag vardır. Bununla birlikte, elipsin çalışmasını beklediğinize göre, kendi başınıza uygulamak ... iyi bir seçenek olabilir.

+0

mmbase kullanarak denedim, benim WEB-INF/lib dizininin içinde mmbase-1.9.5.jar (en son sürüm) koydu ettik, ama ben hata: "etiket kitaplığı tanımlayıcısı bulunamıyor". Eclipse yoluna da eklemeyi denedim. Uri "http://www.mmbase.org/mmbase-taglib-2.0" ve -1.0 ile çalıştım. Şimdilik kendi başıma uygulamayı deneyeceğim. – stivlo

0

Eski iş parçacığı, ancak bunu yanıt isteyen herkes için gönderiyorum. Aşağıda bunları nasıl ele aldım. Kod, td elemanlarını yaratan bir döngü içerisindeydi, dolayısıyla sütunlara referans. Metin kesmeye ihtiyaç duyarsa, üç noktaya yer açmak için alt diziyi ayarladıktan sonra üç noktaya ekledim.

<c:if test="${columnMaxLength ge 0}">  
    <c:set value="" var="ellipsis" />   
    <c:if test="${fn:length(colTxt) gt columnMaxLength}">  
    <c:set value="..." var="ellipsis" />  
    </c:if> 
    <c:set value="${fn:substring(colTxt, 0, (columnMaxLength - fn:length(ellipsis)))}${ellipsis}" var="colTxt" /> 
</c:if> 
<c:out value="${colTxt}" /> 
İlgili konular