Author
Boolean Object in JSTL
Chris Cornelius
Ranch Hand
Joined: Aug 02, 2005
Messages: 48
posted Aug 02, 2005 14:31:00
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
posted Aug 02, 2005 15:12:00
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
posted Aug 02, 2005 15:29:00
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
posted Aug 02, 2005 15:31:00
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
posted Aug 02, 2005 15:35:00
This is the bean method: public Boolean isLocked() { return locked; }
Bear Bibeault
Author and opinionated walrus
Sheriff
Joined: Jan 10, 2002
Messages: 36549
posted Aug 02, 2005 15:44:00
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
posted Aug 02, 2005 15:54:00
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
posted Aug 03, 2005 08:55:00
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
posted Aug 04, 2005 01:09:00
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
posted Aug 05, 2005 08:43:00
Thanks for the useful info, I will definately use that in future projects.