Rick Reumann wrote:
This method I think gets called a lot, by each getter, so I would not add that pcode to it at a hot spot. (but in general checking for null is good since null is a bad exception to ever get)Remember a few days ago I posted about that I was doing : _current = new Map();
Now I know why I was doing that, (although I think I found a better
plan)... anyway the reason I was having to initialize the Map is
sometimes the insertNew() method of BaseBean wasn't called (which sets
up a new _current Map into the list) because I was using a FormBean
directly from a link.
For example I have a list of projects (ProjectBeans) and when I click on one of the projects I go to a ProjectDetailAction which queries and returns me more detailed project information. The link looks like:
<html:link forward="projectDetail" paramName="element" paramProperty="projectId" paramId="projectId"><c:out value="${element.projectId}"/></html:link>
The problem is this projectDetail maps to an Action that has a
ProjectSearchBean associated with it and since I'm not going through a
"New" method, there is no _current Map that ever gets intialized so you
end up with null pointer problems in the setProjectId(..) method since
it calls the BaseBean setValue() method which tries to populate the non
initialized _current Map.
So the question is, how do I get around this problem? I'm thinking maybe I should do a quick check in the BaseBean setValue() method ..
if ( _current == null ) { _current = new Map(); }
My preference is that your project Detail action was called via a dispatch new event parm (you can pass mutiple parms, I use JSTL); and in the new event of action you prep your bean (MVC Style; you know I do not like to mix beans/actions, to me each form (page) has it's own formBean..... generally). I do have this kind of thing in a few places of bP.
Also... I might have know more Struts than you before; at this point we are more peers, so I am not sure if I can be the one to always recommend, it be more of an opinion where I am right 50%. But keep asking for comments.
The guide line there is : do majority of beans need it? (not! so design for the rule, and not "rate" cases. If you handle rare cases, you get complexity)
But maybe that's not such a good idea? (The other idea was how I
initially was doing it, setting _current = new Map() in the bean
constructor.
Any other ideas? suggestions? Thanks.
-- Vic Cekvenich, Struts Instructor, 1-800-917-JAVA
Advanced <a href ="baseBeans.com">Struts Training</a> and project recovery in North East. Open Source <a href ="baseBeans.com">Content Management</a> basicPortal sofware Best practice<a href ="baseBeans.com">Struts Support</a> v.1.1 helper ScafflodingXPress
_______________________________________________ MVC-Programmers mailing list [EMAIL PROTECTED] http://www.basebeans.net:8080/mailman/listinfo/mvc-programmers