File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JSP and the fly likes Boolean Object in JSTL Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "Boolean Object in JSTL" Watch "Boolean Object in JSTL" New topic
Author

Boolean Object in JSTL

Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Posts: 48
Hello,

I am a JSP, JSTL newbie and have really enjoyed
this forum!!

My question is I need to evaluate a Boolean object,
is there a way to do this?

This is what I thought would work and no dice:
<c:when test="${item.locked == 'true'}">

Thanks in advance for your help!



Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60780
    
  65

By enclosing the true in quotes, you've made a string out of it.

Rather, you can just use:



or



but the latter is unecessarily verbose.
[ August 02, 2005: Message edited by: Bear Bibeault ]

[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Posts: 48
Thanks for the tip, I ran the program and got this:

WARNING: CORE3283: stderr: javax.servlet.jsp.JspTagException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "test"
with value "${item.locked}": Unable to find a value for "locked" in object.

When debugging the program I can see the Boolean value in the bean object.

What else could I be doing wrong?

Thanks again!!
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60780
    
  65

What is the signature for the property accessor for 'locked'?

It should be:

public boolean getLocked()
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Posts: 48
This is the bean method:

public Boolean isLocked()
{
return locked;
}
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60780
    
  65

I'm not sure if the EL evaluation is sensitive to the 'is' form of a boolean accessor. Try the 'get' signature and see if your life improves.
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Posts: 48
Thank you very much for your help!!

I went ahead and changed everything from
Boolean to boolean and the method to getLocked,
and it worked like a charm!

Chris
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60780
    
  65

I'm glad it's working for you now.

After doing some testing, what's weird is that apparently it was the return type of Boolean (rather than boolean) in conjunction with the is/get prefix for the accessor method that was tripping you up.

The following formats work as one would expect:



but this



generates the "Unable to find a value" error (at least under Tomcat -- Resin 3 returns a blank rather than throwing an error).

I'm not as familiar with the JavaBeans Specification as I am with the Servlets, JSP and JSTL specs, so I'm not sure exactly what precept the latter form violates.

I'm intrigued enough to investigate further...
Adeel Ansari
Ranch Hand

Joined: Aug 15, 2004
Posts: 2874
Thanks Bear for your efforts.

May be is works only with primitive boolean and get works with any. Just a thought.
[ August 04, 2005: Message edited by: Adeel Ansari ]
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Posts: 48
Thanks for the useful info, I will definately use that
in future projects.

 
 
subject: Boolean Object in JSTL
 
Similar Threads
setting a boolean using c:set
"tag:useObject"?
JSTL creates unwanted sessions
how EL handles the null values
How absurd about JSTL, jsp:usebean