2012-01-25 21 views
21

Bir JSP ifadesinde bir if-then-else ifadesi yapabilir misiniz?Bir JSP ifadesinin içinde başka ne varsa?

EDIT: Özellikle bir JSP çözümü arıyordum, JSTL çözümü değil. Ancak aşağıdaki bazı JSTL çözümleri yüksek oranda derecelendirilmiştir ve çok açıktır. Sadece JSTL hakkında bir soru sorulduğu için lütfen çift soru için oy kullanmayın.

+2

Evet. http://stackoverflow.com/questions/4587397/how-to-use-if-else-option-in-jstl –

+0

@Simon, JSP'den JSTL istemiyordum. (Uygun terminolojiyi kullanıp kullanmadığımı emin değilim.) – Xonatron

cevap

22

JSTL'yi kullanıyorsanız, aksi halde -şimdi seçebilirsiniz. JSTL hakkında daha fazla bilgi here denemek için

<c:choose> 
    <c:when test="condition"></c:when> 
    <c:when test="condition2"></c:when> 
    <c:otherwise></c:otherwise> 
</c:choose> 

.

+0

Bunun için teşekkürler, ama bir JSP çözümü değil, bir JSTL çözümü arıyordum. Sonunda projem için önemli olup olmadığından emin değilim, fakat henüz JSTL'ye aşina değilim. – Xonatron

+1

JSTL çok sayıda işlevsellik ekler ... eğer kullanıcı arabiriminizi JSP'lerle yapıyorsanız, muhtemelen buna değer olmaya değer. Başlamak için oldukça basit. – Michael

+0

Bunun için teşekkürler. Ona bakmak zorunda kalabilirim. Kaçan web tabanlı dizeleri de kolayca ele alıyor. Web uygulamaları için çok iyi tasarlanmış gibi geliyor. Söylediğim gibi, hiç kullanmadım, yani bu nasıl göründüğü gibi. JSP Scriptlets ve JSP İfadeleri ile JSTL arasında biraz kafam karışık. Hepsini kullandıklarımdan, her birinin amacına ve yerine hakim olmasını bekliyorum. Şimdiye kadar bir diğeri arasında bir seçim zerafet için görünmektedir. Benim sorumun amacı aslında aslında. – Xonatron

28

JSP EL 2.0 uygulamasında, üçlü operatörü kullanarak bunu yapabilirsiniz. Örneğin:

<option value="1" ${param.number == 1 ? 'selected' : ''}>First option</option> 

Ne yapar o JSP param 'ın number değişkeni denetler. Eğer 1 ise, o zaman seçili değiştirilir. Aksi halde, hiçbir şey.

+0

Bunu beğendim. Ama ne olduğundan emin değilim. Bu bir JSP İfadesi değil. JSP Scriptlet'imden değişkenlere buradan erişebilir miyim? (Şu anda deniyorum ve başarısızım.) – Xonatron

+0

'Param', betikteki tüm değişkenleri içerir. 'param.number' sadece' number' değerine erişecektir. –

+0

JSP Scriplet'imde bir “boolean” bile var, ancak 'param.even' erişemiyor gibi görünüyor. '' '' 'her '' true'' false '' ve '$ {param.even == true kullandığımda mı? 'çift': 'garip'} veya '$ {param.even? 'even': 'garip'} '' ı tek elde ettiğim, çıkış için tekrar 'garip'. – Xonatron

11

Böyle jsp etiketleri ile html kodunu sarabilirsiniz:

<% if (condition) { %> 
<div>Condition is true!</div> 
<% } else { %> 
<div>Condition is false</div> 
<% } %> 
+0

Bunu da beğeniyorum. Bu aslında benim şu anki çözümüm! Ancak JSP İfadeleri değil, JSP Scriptlets kullanıyor. En zarif çözümü istedim. – Xonatron

0

Eclipse bana anlatmaya devam çünkü o servlet süre gelen bir değişken çözemezse kullanan farklı yol var aşağıda hangi yürütme (Not: muyum yeni JSP için):

metinyazdırmak için benzeri

${if(var != null)"text to print"} 
${if(var != null)var} to print a variable 
${if(var != null)"text to print"} 

sonuç olacaktırvaryant buraya > metin yazdı

İlgili konular