This week's book giveaway is in the Flex forum.
We're giving away four copies of Flex 4 in Action and have Tariq Ahmed, Dan Orlando, John C. Bland II & Joel Hooks on-line!
See this thread for details.
[Logo] JavaRanch » JavaRanch Saloon
  Search | FAQ | Recent Topics | Hot Topics
Register / Login


Win a copy of Flex 4 in Action this week in the Flex forum!
Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » JSP
 
RSS feed
 
New topic
Author

Boolean Object in JSTL

Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Messages: 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 opinionated walrus
Sheriff

Joined: Jan 10, 2002
Messages: 36549

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 ]

[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Messages: 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 opinionated walrus
Sheriff

Joined: Jan 10, 2002
Messages: 36549

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

It should be:

public boolean getLocked()

[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Messages: 48

This is the bean method:

public Boolean isLocked()
{
return locked;
}
Bear Bibeault
Author and opinionated walrus
Sheriff

Joined: Jan 10, 2002
Messages: 36549

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.

[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
Chris Cornelius
Ranch Hand

Joined: Aug 02, 2005
Messages: 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 opinionated walrus
Sheriff

Joined: Jan 10, 2002
Messages: 36549

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...

[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
Adeel Ansari
Ranch Hand

Joined: Aug 15, 2004
Messages: 2870

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
Messages: 48

Thanks for the useful info, I will definately use that
in future projects.

 
 
 
Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » JSP
 
RSS feed
 
New topic
The most intelligent Java IDE

.