| 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 opinionated walrus
Marshal
Joined: Jan 10, 2002
Posts: 48799
|
|
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
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 opinionated walrus
Marshal
Joined: Jan 10, 2002
Posts: 48799
|
|
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 opinionated walrus
Marshal
Joined: Jan 10, 2002
Posts: 48799
|
|
|
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 opinionated walrus
Marshal
Joined: Jan 10, 2002
Posts: 48799
|
|
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
|
|
|