How to use if-else option in JSTL
Aside from the wrapper tag (choose), I don’t see how this is any more verbose than if/elseif/else would be. One wrapper tag hardly constitutes ‘clunky as hell’, no?
@Steven: It’s the XML nature of it. There’s more characters in the boilerplate than there is in the actual logic.
start nesting logic with appropriate indentation and clunky as hell will seem too kind a description.
One can still use plain old java syntax. I know I’m gonna be hated for this, but el is in no way compulsory. It was meant to be more readable and enforce separation of logic and UI, but it’s too often not more readable, and the rest is about discipline.
In addition with skaffman answer, simple if-else you can use ternary operator like this
There is no if-else, just if.
Optionally you can use choose-when:
do something do something else do this when nothing else is true
Hi @iwxfer, your above link is not available right now, please update, if you can as you good score, other wise remove it.
I got away with simply using two if tags, thought I’d add an answer in case it’s of use to anyone else:
whilst technically not an if-else per se, the behaviour is the same and avoids the clunky approach of using the choose tag, so depending on how complex your requirement is this might be preferable.
Consider the case when the condition is something complicated and ugly like $
Indeed a complex condition would require either a local variable or writing the inverse, but both of those options would still work. I clarified that it would depend on how complex the requirement is as to whether this approach would be preferable over the choose tag.
There’s another additional benefit of having
you have to use this code:
Besides the need to have an else, in many cases you will need to use the same condition on multiple locations.
I prefer to extract the condition into a variable:
And after that, you can use the condition variable as many times as you need it:
The c:choose element is good for more complicated situations, but if you need an if else only, I think this approach is better. It is efficient and has the following benefits:
- more readable if the variable name is well chosen
- more reusable because the condition is extracted and the resulting variable can be reused for other ifs and in other expressions. It discourages writing the same condition (and evaluating it) multiple times.
JSTL If Else Example
JSTL If Else Example explains about testing different conditions as per the requirements. It also provides a secondary path (else case) of execution, when an «if» conditions become false.
We have already seen the usage of JSTL If Example
How to use if-else option in JSTL?
There are 2 ways, we can achieve if-else statements using JSTL
You can see the below example, which is demonstrating JSTL If Else Example Using Mod operator
Required Libraries
Following jar must be in classpath
JSTL If Else Example
taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> html> head> title>JSTL If Else Exampletitle> head> body> c:set value="18" var="age" /> c:out value="$" /> body> html>
if. else within JSP or JSTL
You can use and tags to make conditional rendering in jsp using JSTL.
To simulate if , you can use:
To simulate if. else, you can use:
Thx for that. Actually I am more into UI dev. So do not have much knowledge of JSTL..Could you please provide me a similar working example of JSTL..I mean for if..else
Thx for the example..The condition I have is actually a JS condition..if navigator.userAgent.match(/iPad/i) != null So can I write that directly in the if test=»condition»..
Ok..that’s fine. But for the actual condition i.e.in the test=»condition» . Can I specify any JS condition and if yes, can I write it directly e.g. Can I write
If you just want to output different text, a more concise example would be
It is way shorter than c:choose.
@otherDewi: It’s JSTL, which can be used in a JSP file. The conditional or ternary operator exists in many other languages though, including Javascript.
The construct for this is:
If the condition isn’t expensive, I sometimes prefer to simply use two distinct
because you get content assist out-of-the-box, for a start. And because webdevs can use it without learning yet-another-dsl
In case you want to compare strings, write the following JSTL:
Value is 5 Value is not 5
You can write if-else condition inside in jsp pages and html code outside of
username is null
//html code else < %> username is not null
//html code %>
//if part //else part
If you want to do the following by using JSTL Tag Libe, please follow the following steps:
[Requirement] if a number is a grater than equal 40 and lower than 50 then display «Two digit number starting with 4» otherwise «Other numbers».1. Please Add the JSTL tag lib on the top of the page.` ` 2. Please Write the following code ` Two digit number starting with 4.
Other numbers.
`
if/else logical in jstl
I’m trying to ensure that list of objects doesn’t null and has at least one item in it. Please tell me what am I doing wrong with the following snippet.
" />
" />
" />
" />
" />
" />
I found out it stop right at the if statement by debug, and hmlt tags inside hasn’t been rendered even if there’s item in educations list
Yes. And stackoverflow.com/questions/9103082/… already, but still can’t figure out what’s wrong with my snippet. It looks fine but didn’t work properly
1 Answer 1
Have you included properly for JSTL functions ?
And also add prefix requestScope before accessing any variables.
" />
" />
" />
" />
" />
" />
It would be better if you do only the empty check
Your intent is to iterate over the list using then it may be good to know that it already won’t run when the provided items is empty. If the is directly surrounded by this check, then this check is entirely superfluous.