--- Craig McClanahan <[EMAIL PROTECTED]> wrote: > On Fri, 27 Aug 2004 10:21:58 -0700 (PDT), Woodchuck > <[EMAIL PROTECTED]> wrote: > > sorry to bring this up on a Friday... > > Yah, I didn't know we could have serious discussions on Fridays any > more :-).
Monday is just as bad i guess... nobody is serious on Mondays :) > > > > > does everyone here have pure Struts/JSTL jsp pages that is > absolutely > > void of scriptlets? > > Except for some unit tests (where scriptlets are used to configure > the > initial conditions), yes. > > > > > or do you have jsp pages that use a combination of Struts/JSTL and > > scriptlets, all living together harmoniously using whichever method > is > > easiest/cleanest? > > > > is mixing Struts/JSTL with traditional scriptlets a bad thing? > > > > It is too simplistic to say such a thing is "good" or "bad" on any > absolute scale. As with every other design decision, you have to > trade off the impacts of any particular decision on your overall > goals i guess it would have been too easy to be a black and white issue. damn you, grey!! damn you!! lol > -- and nearly every reasonable choice you might consider has some > positive impacts and some negative impacts. uh oh, don't get me started on my English teacher's "Everything is Connected" philosophy... lol > > > i have to say that i would prefer to *not* mix scriptlets with > > Struts/JSTL but in some situations it seems scriptlets is the > better > > solution (in terms of code maintainability). that is, it would be > > easier to use a little snippet of scriptlet here and there instead > of > > making a round-about (albeit clever) and more verbose way of doing > the > > same thing without scriptlets... > > > > any opinions is welcome! i want to be able to sleep without > nightmares > > about this!! :) > > My reasoning for not using scriptlets is based around technical > issues > (see below), but they are fundmentally driven by an 80/20 rule I've > observed that hasn't been articulated in this thread yet ... 80% of > the investment you will make in the lifetime of the application wil > be > maintenance, versus 20% on the original development. i had always thought the 80/20 rule was 80% design, 20% development.. but your version is true too! (maybe we can say your 80/20 is a 'top-down 80/20 rule' and the one i've always known is a 'bottom-up 80/20 rule') :) > To the extent > that this ratio is true, then, it behooves me to choose design > approaches that minimize the long term cost of dealing with changes > -- > and, as we all know, the only constant in life is that it's gonna > change. > > Given this bias, then, my problem with scriptlets: > > (1) Scriptlets, since they are Java code, require someone at least > passably familiar with Java to change them later. If you have folks > that are primarily page authors, you are faced with a cost of > teaching > them enough about Java syntax to make the code it needs to do, or > having to involve two folks in every page (a page author and a Java > developer), or paying Java developers to maintain HTML. None of > those > approaches is appealing to me. lol, tell that to my employers! <sobbing>i'm mr. one-man web app guy, have to do HTML, javascript, css, java everything (model,view,controller), jdbc, database design, build deployment (ant), server admin (tomcat), vss (source control admin)...</sobbing> <hears whip crackle coming.../> > > (2) Scriptlets, since they are Java code, bind you to a particular > representation of your data to a much higher degree than scripting > expressions do. Take your favorite Struts action form, and implement > it first as a DynaBean (because it's faster to prototype that way), > and use tags like <html:text> when building your input forms. Now, > lets say a requirement changes such that you have to do some > specialized work when a form bean property is set or retrieved, such > that you need to switch to a regular ActionForm implementation > instead. If you used the Struts tags, how much did you have to > change > the JSP source? None -- the "name" and "property" expressions work > with either dynabean action forms or POJO ones. On the other hand, > if > you used scriptlet expressions, you'd have to change every single one > of them. great point. > > (3) The custom tags do more for you than just set and retrieve data. > Here's just a couple of examples where using the tag gets you extra > benefits for free: > > * In order for sessions to work on browsers with cookies disabled, > you have to call an extra method to encode them. <html:link> does > it for you ... a dynamic scriptlet call does not. yea, that's true, i wouldn't want to have to manually maintain URL rewriting. > > * In order to avoid cross site scripting attacks, you want to be > careful > about writing out dynamic content that was originally entered (on > an > input form) by users, where it might have "<" and ">" characters in > it. > The tags filter for you (unless you turn it off) -- naive calls to > out.println() does not. awesome point. i keep forgetting that tags are really a filter for this sort of thing. > > (4) Scriptlets, since they are Java code, can do anything that Java > can do. This creates the potential for developers to "cheat" and mix > business logic and presentation logic together (in the JSP page) in > ways that makes maintenance harder (i.e. more expensive) later. Yes, > you can catch such things by having your architects and leads do > aggressive code reviews, but I'd rather have my architects designing, > and my leads managing the development, instead of policing for this > sort of thing. yea, that tends to happen. the more scriptlets there are the more likely they will have some business logic creep into them. > > None of this is to say that you can't be productive when using > scriptlets. But my experience has been that whatever boost they give > you tends to be short term; over the long run, you're generally > better > off desigining for minimum maintenance, rather than designing for > minimum initial development. thanks, Craig. i see your point. tags development may cost a bit more in the beginning but the benefits later on are well worth it! > > Craig > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > _______________________________ Do you Yahoo!? Win 1 of 4,000 free domain names from Yahoo! Enter now. http://promotions.yahoo.com/goldrush --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]