Selain dari tag pembungkus (pilih), saya tidak melihat bagaimana ini lebih verbose daripada jika / elseif / selain itu. Satu tag pembungkus hampir merupakan 'kikuk sebagai neraka', bukan?
Steven Benitez
19
@ Seven: Ini sifat XMLnya. Ada lebih banyak karakter di boilerplate daripada yang ada di logika sebenarnya.
skaffman
2
Ah, baiklah. Hal yang sama dapat diatur untuk <c:if/>saat itu juga.
Steven Benitez
15
Saya tahu saya agak terlambat ke pesta, tapi <c:otherwise>sepertinya sedikit bertele-tele, eh?
andronikus
6
mulai bersarang logika dengan lekukan yang tepat dan kikuk karena neraka akan tampak deskripsi yang terlalu baik.
Adam Tolley
105
Selain dengan jawaban skaffman, simpel if-else Anda bisa menggunakan operator ternary seperti ini
Ini adalah jawaban yang baik, tetapi sangat situasional untuk seberapa berguna jadinya.
Mike LP
47
Tidak ada yang lain, hanya jika.
<c:iftest="${user.age ge 40}">
You are over the hill.
</c:if>
Secara opsional, Anda dapat menggunakan pilih-kapan:
<c:choose><c:whentest="${a boolean expr}">
do something
</c:when><c:whentest="${another boolean expr}">
do something else
</c:when><c:otherwise>
do this when nothing else is true
</c:otherwise></c:choose>
sementara secara teknis bukan if-elseper se, perilakunya sama dan menghindari pendekatan yang kikuk dalam menggunakan choosetag, jadi tergantung pada seberapa kompleks kebutuhan Anda, ini mungkin lebih disukai.
Pertimbangkan kasus ketika kondisinya rumit dan jelek seperti $ {bukan param.age gt 42 dan someOtherVar eq 'foobar'}. Anda harus menyimpan kondisi ke dalam variabel boolean sementara sehingga Anda bisa melakukan! Kondisi, atau menulis kebalikan dari kondisi itu. Keduanya jelek. Sintaks "jika tidak" adalah invers yang dijamin.
Matt membakar
3
Memang kondisi yang kompleks akan membutuhkan variabel lokal atau menulis kebalikannya, tetapi kedua opsi tersebut masih berfungsi. Saya mengklarifikasi bahwa itu akan tergantung pada seberapa kompleks persyaratannya, apakah pendekatan ini lebih disukai daripada choosetag.
jonk
2
Saya setuju dengan ini. Jika Anda hanya memiliki satu lagi, markeupnya lebih sedikit daripada menggunakan c: pilih
javaMoca
1
Ada manfaat tambahan lain dari memiliki <c: if test = "$ {condition} == true"> dan <c: if test = "$ {condition == false}">>. Ketika variabel nol (tidak diinisialisasi), cabang tidak dieksekusi, yang bagus. Jika Anda menggunakan <c: pilih> dan <c: when>, cabang palsu akan dieksekusi ketika variabelnya nol.
Steve Stilson
3
Anda harus menggunakan kode ini:
dengan <%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>
Ini adalah pendekatan yang baik dan efisien sesuai prospek kompleksitas waktu. Setelah itu akan mendapatkan kondisi yang benar, itu tidak akan memeriksa yang lain setelah ini. Dalam beberapa Jika, itu akan memeriksa masing-masing dan kondisi.
<c:choose><c:whentest="${condtion1}">
do something condtion1
</c:when><c:whentest="${condtion2}">
do something condtion2
</c:when>
......
......
......
.......
<c:whentest="${condtionN}">
do something condtionn N
</c:when><c:otherwise>
do this w
</c:otherwise></c:choose>
Jawaban:
Ya, tapi itu kikuk sekali, misalnya
sumber
<c:if/>
saat itu juga.<c:otherwise>
sepertinya sedikit bertele-tele, eh?Selain dengan jawaban skaffman, simpel if-else Anda bisa menggunakan operator ternary seperti ini
sumber
Tidak ada yang lain, hanya jika.
Secara opsional, Anda dapat menggunakan pilih-kapan:
sumber
Saya lolos dengan hanya menggunakan dua tag if, pikir saya akan menambahkan jawaban seandainya itu digunakan untuk orang lain:
sementara secara teknis bukan
if-else
per se, perilakunya sama dan menghindari pendekatan yang kikuk dalam menggunakanchoose
tag, jadi tergantung pada seberapa kompleks kebutuhan Anda, ini mungkin lebih disukai.sumber
choose
tag.Anda harus menggunakan kode ini:
dengan
<%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>
dan
sumber
Ini adalah pendekatan yang baik dan efisien sesuai prospek kompleksitas waktu. Setelah itu akan mendapatkan kondisi yang benar, itu tidak akan memeriksa yang lain setelah ini. Dalam beberapa Jika, itu akan memeriksa masing-masing dan kondisi.
sumber