Search code examples
javajspjstlel

How to write if else condition using ternary operator in jstl?


I want to write a if else condition using ternary in JSTL. I did it using jsp.

My code is using jsp:

<%= relAttributeValue != "false" && !relAttributeValue.equals("false") ? "rel=\"nofollow\"" : "" %>

How can I achieve it using jstl?


Solution

  • You mean Expression Language, EL in short, since that's the component that allows you use ${something} expressions, while JSTL is a tag library which gives you tag components like <c:set>.

    In EL, you can do it like this:

    <c:set var="ternaryResult"
        value="${(relAttributeValue != 'false') ? 'rel=\"nofollow\"' : ''}" />
    

    Note that in EL you don't need to worry about comparing references using == like in Java. More info on this: Is there an equivalent of '==' from Java in EE 6 JSF EL