aspose file tools*
The moose likes JSP and the fly likes Custom JSP Tag - Unrequired-Fields not cleared Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "Custom JSP Tag - Unrequired-Fields not cleared" Watch "Custom JSP Tag - Unrequired-Fields not cleared" New topic
Author

Custom JSP Tag - Unrequired-Fields not cleared

Jeff Schramm
Greenhorn

Joined: Jul 16, 2009
Posts: 4
Hello,

i wrote a custom tag which builds a specific link. Following attributes



The label attribute is not required.

If label is unspecified:



For the first tag of the JSP everything is working, well. But if i use the Tag a second time and the label attribute is again not used in the jsp -> label has the old value from the last tag! Why?

My workaround is to reset all fields at the end of tag execution. Do somebody know a better solution?

Thanks, Jeff



Eduardo Bueno
Ranch Hand

Joined: Jun 04, 2009
Posts: 155
Stupid question: is anything in your tag class static?
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Some containers may cache tags, too.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61196
    
  66

Please post the entire tag handler. Be sure to use code tags.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Jeff Schramm
Greenhorn

Joined: Jul 16, 2009
Posts: 4
David Newton wrote:Some containers may cache tags, too.


I`m using Tomcat 5.5 -

TagHandler:


TLD:


JSP:


If i comment out


the field 'label' will not be cleared for the second iteration!

thanks for your help,
Jeff
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61196
    
  66

I did not have to look far to see a problem.
if(label == null)
label = value;


You are modifying an instance variable from within the tag. That's a no no.

The instance variables that represent attribute values can only be set by the container. You muck with them under the covers, and all hell breaks loose.
Jeff Schramm
Greenhorn

Joined: Jul 16, 2009
Posts: 4
Bear Bibeault wrote:I did not have to look far to see a problem.
if(label == null)
label = value;


You are modifying an instance variable from within the tag. That's a no no.

The instance variables that represent attribute values can only be set by the container. You muck with them under the covers, and all hell breaks loose.


thank you for your advise- i will change it tomorrow
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61196
    
  66

This is one of the reasons that Simple Tag handling was introduced in JSP 2.0 -- Classic Tag handling has a lot of "rules" that are easy to fall afoul of.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Custom JSP Tag - Unrequired-Fields not cleared