Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Struts Kick Start

timothy posted more than 11 years ago | from the your-stuff dept.

Java 134

Simon P. Chappell writes "I started learning how to use the Struts framework in late in 2001, after I became fed-up with hacking web applications together with the digital equivalent of "Duct-tape Engineering". At that time there were no books available for the budding Struts developer, "Read The Fine Manual" was not an option ... you read the website, you read the code or you asked questions on the mailing list. This situation finally changed this fall with the release of a flurry of titles dedicated to Struts. I present here my thoughts on one of the latest: "Struts Kick Start". The rest of Simon's review follows.

What is Struts?

Struts is a framework for developing web applications. It is a distilation of the current set of known best practices into a working code set that can be extended to meet almost any web application requirements. It part of the Jakarta Project at the Apache Software Foundation.

What do I know about Struts?

I have been developing web applications, using Java, for four years and using struts for over a year, and am a regular participant on the Struts mailing list. I was also a technical reviewer for one of the other Struts Books released this fall and was recently invited to speak at the University of Wisconsin, Eau Claire on the use of Struts.

What's good about this book?

There are many excellent things that I could point to. I particularly like the obvious depth of research that accompanies this book. There is a very interesting history of the development of the MVC design pattern and they even name the inventor. Do you know who invented MVC? If you want to know, buy the book! The chapters cover everything that you will need to know, in the order you are most likely to need to know it. There's even a chapter explaining the "struts-config.xml" file's DTD! (You may want to skip that on the first few readings :-)

There is good coverage of the Struts taglibs. I see a lot of questions about these on the mailing lists, so this information is very timely and it looks very well explained.

I like the coverage of other open source tools that work well with Struts. This is an important point because Struts does not do everything for you (by design), so there will be areas that will benefit from other tools. I'm looking forward to trying out some of their recommendations and easing my own Struts development lifecycles.

What's not so good?

Just one niggle, and it's more of a programming style issue, but in their example code they have references to their business objects. They explain that it is important to separate out business logic from action logic, which it is, but then proceed to use their business object within the action.

Now, I realise that example code is not the same thing as robust, production-ready code, but when people are first learning a language or framework, they tend to copy exactly what they see in the book they are learning from. Even though example code should be light on error checking, it should be heavy on correctness and good style.

Should you rush out and buy it?

If you are about to use Struts on a project, are new to Struts and need dead tree documentation for those RTFM moments or are evaluating Struts for future projects, then you absolutely need this book.

If you are an intermediate Struts user, then this book would still be very useful to you and I can certainly recommend it.

If you are an experienced Struts user, then you've almost certainly exchanged emails with James or Kevin, on the Struts mailing list, so you can make your own mind up!

Table of Contents

  1. Struts in Context
  2. The Model-View-Controller Design Pattern
  3. Hello World!
  4. HTTP Protocol
  5. JSP, Taglibs and JSTL
  6. The Sample Application
  7. View Components
  8. The Controller
  9. Model Components
  10. The struts-config.xml File
  11. How the Struts Tag Libraries Work
  12. Struts HTML Tags
  13. Struts Bean Tags
  14. Struts Logic Tags
  15. The Nested and Template Struts Tag Libraries
  16. The Struts Tiles Tag Library
  17. DynaForms and the Validator
  18. Using Struts with Enterprise Java Beans
  19. Using Struts with Web Services
  20. Building, Deploying and Testing Struts Applications

You can purchase Struts Kick Start from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

Sorry! There are no comments related to the filter you selected.


IN SOVIET RUSSIA (621411) | more than 11 years ago | (#4988676)

Struts kick start you!


Anonymous Coward | more than 11 years ago | (#4988733)

This morning I'll be escorting my wife to the hospital, where the doctors will perform a caesarean section to remove our first child. She didn't want to do it this way - neither of us did - but sometimes the Fates decide otherwise. The Fates or, in our case, government employees.

On the morning of October 26th Mary and I entered Portland International Airport, en route to the Las Vegas wedding of one of my best friends. Although we live in Los Angeles, we'd been in Oregon working on a film, and up to that point had had nothing but praise to shower on the city of Portland, a refreshing change of pace from our own suffocating metropolis.

At the security checkpoint I was led aside for the "inspection" that's all the rage at airports these days. My shoes were removed. I was told to take off my sweater, then to fold over the waistband of my pants. My baseball hat, hastily jammed on my head at 5 AM, was removed and assiduously examined ("Anything could be in here, sir," I was told, after I asked what I could hide in a baseball hat. Yeah. Anything.) Soon I was standing on one foot, my arms stretched out, the other leg sticking out in front of me àla a DUI test. I began to get pissed off, as most normal people would. My anger increased when I realized that the newly knighted federal employees weren't just examining me, but my 7½ months pregnant wife as well. I'd originally thought that I'd simply been randomly selected for the more excessive than normal search. You know, Number 50 or whatever. Apparently not though - it was both of us. These are your new threats, America: pregnant accountants and their sleepy husbands flying to weddings.

After some more grumbling on my part they eventually finished with me and I went to retrieve our luggage from the x-ray machine. Upon returning I found my wife sitting in a chair, crying. Mary rarely cries, and certainly not in public. When I asked her what was the matter, she tried to quell her tears and sobbed, "I'm's...they touched my breasts...and..." That's all I heard. I marched up to the woman who'd been examining her and shouted, "What did you do to her?" Later I found out that in addition to touching her swollen breasts - to protect the American citizenry - the employee had asked that she lift up her shirt. Not behind a screen, not off to the side - no, right there, directly in front of the hundred or so passengers standing in line. And for you women who've been pregnant and worn maternity pants, you know how ridiculous those things look. "I felt like a clown," my wife told me later. "On display for all these people, with the cotton panel on my pants and my stomach sticking out. When I sat down I just lost my composure and began to cry. That's when you walked up."

Of course when I say she "told me later," it's because she wasn't able to tell me at the time, because as soon as I demanded to know what the federal employee had done to make her cry, I was swarmed by Portland police officers. Instantly. Three of them, cinching my arms, locking me in handcuffs, and telling me I was under arrest. Now my wife really began to cry. As they led me away and she ran alongside, I implored her to calm down, to think of the baby, promising her that everything would turn out all right. She faded into the distance and I was shoved into an elevator, a cop holding each arm. After making me face the corner, the head honcho told that I was under arrest and that I wouldn't be flying that day - that I was in fact a "menace."

It took me a while to regain my composure. I felt like I was one of those guys in The Gulag Archipelago who, because the proceedings all seem so unreal, doesn't fully realize that he is in fact being arrested in a public place in front of crowds of people for...for what? I didn't know what the crime was. Didn't matter. Once upstairs, the officers made me remove my shoes and my hat and tossed me into a cell. Yes, your airports have prison cells, just like your amusement parks, train stations, universities, and national forests. Let freedom reign.

After a short time I received a visit from the arresting officer. "Mr. Monahan," he started, "Are you on drugs?"

Was this even real? "No, I'm not on drugs."

"Should you be?"

"What do you mean?"

"Should you be on any type of medication?"


"Then why'd you react that way back there?"

You see the thinking? You see what passes for reasoning among your domestic shock troops these days? Only "whackos" get angry over seeing the woman they've been with for ten years in tears because someone has touched her breasts. That kind of reaction - love, protection - it's mind-boggling! "Mr. Monahan, are you on drugs?" His snide words rang inside my head. This is my wife, finally pregnant with our first child after months of failed attempts, after the depressing shock of the miscarriage last year, my wife who'd been walking on a cloud over having the opportunity to be a mother...and my anger is simply unfathomable to the guy standing in front of me, the guy who earns a living thanks to my taxes, the guy whose family I feed through my labor. What I did wasn't normal. No, I reacted like a drug addict would've. I was so disgusted I felt like vomiting. But that was just the beginning.

An hour later, after I'd been gallantly assured by the officer that I wouldn't be attending my friend's wedding that day, I heard Mary's voice outside my cell. The officer was speaking loudly, letting her know that he was planning on doing me a favor... which everyone knows is never a real favor. He wasn't going to come over and help me work on my car or move some furniture. No, his "favor" was this: He'd decided not to charge me with a felony.

Think about that for a second. Rapes, car-jackings, murders, arsons - those are felonies. So is yelling in an airport now, apparently. I hadn't realized, though I should have. Luckily, I was getting a favor, though. I was merely going to be slapped with a misdemeanor.

"Here's your court date," he said as I was released from my cell. In addition, I was banned from Portland International for 90 days, and just in case I was thinking of coming over and hanging out around its perimeter, the officer gave me a map with the boundaries highlighted, sternly warning me against trespassing. Then he and a second officer escorted us off the grounds. Mary and I hurriedly drove two and a half hours in the rain to Seattle, where we eventually caught a flight to Vegas. But the officer was true to his word - we missed my friend's wedding. The fact that he'd been in my own wedding party, the fact that a once in a lifetime event was stolen from us - well, who cares, right?

Upon our return to Portland (I'd had to fly into Seattle and drive back down), we immediately began contacting attorneys. We aren't litigious people - we wanted no money. I'm not even sure what we fully wanted. An apology? A reprimand? I don't know. It doesn't matter though, because we couldn't afford a lawyer, it turned out. $4,000 was the average figure bandied about as a retaining fee. Sorry, but I've got a new baby on the way. So we called the ACLU, figuring they existed for just such incidents as these. And they do apparently...but only if we were minorities. That's what they told us.

In the meantime, I'd appealed my suspension from PDX. A week or so later I got a response from the Director of Aviation. After telling me how, in the aftermath of 9/11, most passengers not only accept additional airport screening but welcome it, he cut to the chase:

"After a review of the police report and my discussions with police staff, as well as a review of the TSA's report on this incident, I concur with the officer's decision to take you into custody and to issue a citation to you for disorderly conduct. That being said, because I also understand that you were upset and acted on your emotions, I am willing to lift the Airport Exclusion Order...."

Attached to this letter was the report the officer had filled out. I'd like to say I couldn't believe it, but in a way, I could. It's seemingly becoming the norm in America - lies and deliberate distortions on the part of those in power, no matter how much or how little power they actually wield.

The gist of his report was this: From the get go I wasn't following the screener's directions. I was "squinting my eyes" and talking to my wife in a "low, forced voice" while "excitedly swinging my arms." Twice I began to walk away from the screener, inhaling and exhaling forcefully. When I'd completed the physical exam, I walked to the luggage screening area, where a second screener took a pair of scissors from my suitcase. At this point I yelled, "What the %*&$% is going on? This is &*#&$%!" The officer, who'd already been called over by one of the screeners, became afraid for the TSA staff and the many travelers. He required the assistance of a second officer as he "struggled" to get me into handcuffs, then for "cover" called over a third as well. It was only at this point that my wife began to cry hysterically.

There was nothing poetic in my reaction to the arrest report. I didn't crumple it in my fist and swear that justice would be served, promising to sacrifice my resources and time to see that it would. I simply stared. Clearly the officer didn't have the guts to write down what had really happened. It might not look too good to see that stuff about the pregnant woman in tears because she'd been humiliated. Instead this was the official scenario being presented for the permanent record. It doesn't even matter that it's the most implausible sounding situation you can think of. "Hey, what the...godammit, they're taking our scissors, honey!" Why didn't he write in anything about a monkey wearing a fez?

True, the TSA staff had expropriated a pair of scissors from our toiletries kit - the story wasn't entirely made up. Except that I'd been locked in airport jail at the time. I didn't know anything about any scissors until Mary told me on our drive up to Seattle. They'd questioned her about them while I was in the bowels of the airport sitting in my cell.

So I wrote back, indignation and disgust flooding my brain.

"[W]hile I'm not sure, I'd guess that the entire incident is captured on video. Memory is imperfect on everyone's part, but the footage won't lie. I realize it might be procedurally difficult for you to view this, but if you could, I'd appreciate it. There's no willful disregard of screening directions. No explosion over the discovery of a pair of scissors in a suitcase. No struggle to put handcuffs on. There's a tired man, early in the morning, unhappily going through a rigorous procedure and then reacting to the tears of his pregnant wife."

Eventually we heard back from a different person, the guy in charge of the TSA airport screeners. One of his employees had made the damning statement about me exploding over her scissor discovery, and the officer had deftly incorporated that statement into his report. We asked the guy if he could find out why she'd said this - couldn't she possibly be mistaken? "Oh, can't do that, my hands are tied. It's kind of like leading a witness - I could get in trouble, heh heh." Then what about the videotape? Why not watch that? That would exonerate me. "Oh, we destroy all video after three days."

Sure you do.

A few days later we heard from him again. He just wanted to inform us that he'd received corroboration of the officer's report from the officer's superior, a name we didn't recognize. "But...he wasn't even there," my wife said.

"Yeah, well, uh, he's corroborated it though."

That's how it works.

"Oh, and we did look at the videotape. Inconclusive."

But I thought it was destroyed?

On and on it went. Due to the tenacity of my wife in making phone calls and speaking with relevant persons, the "crime" was eventually lowered to a mere citation. Only she could have done that. I would've simply accepted what was being thrown at me, trumped up charges and all, simply because I'm wholly inadequate at performing the kowtow. There's no way I could have contacted all the people Mary did and somehow pretend to be contrite. Besides, I speak in a low, forced voice, which doesn't elicit sympathy. Just police suspicion.

Weeks later at the courthouse I listened to a young DA awkwardly read the charges against me - "Mr. Monahan...umm...shouted obscenities at the airport staff...umm... umm...oh, they took some scissors from his suitcase and he became...umm...abusive at this point." If I was reading about it in Kafka I might have found something vaguely amusing in all of it. But I wasn't. I was there. Living it.

I entered a plea of nolo contendere, explaining to the judge that if I'd been a resident of Oregon, I would have definitely pled "Not Guilty." However, when that happens, your case automatically goes to a jury trial, and since I lived a thousand miles away, and was slated to return home in seven days, with a newborn due in a matter of get the picture. "No Contest" it was. Judgment: $250 fine.

Did I feel happy? Only $250, right? No, I wasn't happy. I don't care if it's twelve cents, that's money pulled right out of my baby's mouth and fed to a disgusting legal system that will use it to propagate more incidents like this. But at the very least it was over, right? Wrong.

When we returned to Los Angeles there was an envelope waiting for me from the court. Inside wasn't a receipt for the money we'd paid. No, it was a letter telling me that what I actually owed was $309 - state assessed court costs, you know. Wouldn't you think your taxes pay for that - the state putting you on trial? No, taxes are used to hire more cops like the officer, because with our rising criminal population - people like me - hey, your average citizen demands more and more "security."

Finally I reach the piece de resistance. The week before we'd gone to the airport my wife had had her regular pre-natal checkup. The child had settled into the proper head down position for birth, continuing the remarkable pregnancy she'd been having. We returned to Portland on Sunday. On Mary's Monday appointment she was suddenly told, "Looks like your baby's gone breech." When she later spoke with her midwives in Los Angeles, they wanted to know if she'd experienced any type of trauma recently, as this often makes a child flip. "As a matter of fact..." she began, recounting the story, explaining how the child inside of her was going absolutely crazy when she was crying as the police were leading me away through the crowd.

My wife had been planning a natural childbirth. She'd read dozens of books, meticulously researched everything, and had finally decided that this was the way for her. No drugs, no numbing of sensations - just that ultimate combination of brute pain and sheer joy that belongs exclusively to mothers. But my wife is also a first-time mother, so she has what is called an "untested" pelvis. Essentially this means that a breech birth is too dangerous to attempt, for both mother and child. Therefore, she's now relegated to a c-section - hospital stay, epidural, catheter, fetal monitoring, stitches - everything she didn't want. Her natural birth has become a surgery.

We've tried everything to turn that baby. Acupuncture, chiropractic techniques, underwater handstands, elephant walking, moxibustion, bending backwards over pillows, herbs, external manipulation - all to no avail. When I walked into the living room the other night and saw her plaintively cooing with a flashlight turned onto her stomach, yet another suggested technique, my heart almost broke. It's breaking now as I write these words.

I can never prove that my child went breech because of what happened to us at the airport. But I'll always believe it. Wrongly or rightly, I'll forever think of how this man, the personification of this system, has affected the lives of my family and me. When my wife is sliced open, I'll be thinking of him. When they remove her uterus from her abdomen and lay it on her stomach, I'll be thinking of him. When I visit her and my child in the hospital instead of having them with me here in our home, I'll be thinking of him. When I assist her to the bathroom while the incision heals internally, I'll be thinking of him.

There are plenty of stories like this these days. I don't know how many I've read where the writer describes some breach of civil liberties by employees of the state, then wraps it all up with a dire warning about what we as a nation are becoming, and how if we don't put an end to it now, then we're in for heaps of trouble. Well you know what? Nothing's going to stop the inevitable. There's no policy change that's going to save us. There's no election that's going to put a halt to the onslaught of tyranny. It's here already - this country has changed for the worse and will continue to change for the worse. There is now a division between the citizenry and the state. When that state is used as a tool against me, there is no longer any reason why I should owe any allegiance to that state.

And that's the first thing that child of ours is going to learn.


anarchima (585853) | more than 11 years ago | (#4988785)

"Nick Monahan works in the film industry. He writes out of Los Angeles where he lives with his wife and as of December 18th, his beautiful new son."

Above comment stolen from [] .


Anonymous Coward | more than 11 years ago | (#4990180)


Struts? (2, Funny)

Anonymous Coward | more than 11 years ago | (#4988708)

Why learn a whole new framwork? A combination of FrontPage and MS Access will do wonders for you - MS Access will even make the VB Code for you after you use the easy drop down utilities to create macros. From there, if you really need more, it is a simple step to port it over to MS SQL Server 2000, which is much, much more enterprise scalable than PostGreSQL or MySQL.

Re:Struts? (0, Offtopic)

akookieone (530708) | more than 11 years ago | (#4988738)

please mod this down since a book review about struts has nothing to do with what database you use to develop with, especially since Struts is java based and works fine with any db that has a JDBC driver.

Re:Struts? (3, Interesting)

MaxwellStreet (148915) | more than 11 years ago | (#4988766)

hehe . . .

Not sure if this is a troll, or intended to be funny . . . but it works on both levels I suppose.

Anyhow, I've been using Struts for about a month refactoring a largish internal Oracle PL/SQL web app, and the MVC separation that's enforced by the Struts framework is really just what the doctor ordered. I'm getting similar functionality in roughly 20% of the comparable lines of code; and this is early enough in the project to where code reuse hasn't even come into play much. I'd imagine it'll end up at about 15% - i.e., 150K LOC using struts as opposed to about a million LOC using PL/SQL.

I know Lines of Code isn't necessarily a good measure of just about anything - but the real benefit is maintainability and ease of expansion (which is what brought on this refactoring to begin with).

Struts is really worth a long hard look - gets you away from using the technologies above and into a real enterprise-class web application structure.

Re:Struts? (0)

Anonymous Coward | more than 11 years ago | (#4989161)

I know Lines of Code isn't necessarily a good measure of just about anything

Actually, studies have shown that lines of code is the metric which correlates best with effort expended (compared to uncommented lines of code, or tokens, or cyclomatic complexity, or any other code metric out there).

Re:Struts? (0)

Anonymous Coward | more than 11 years ago | (#4989313)

Reduced lines of code is an EXCELENT metric, unless your a C/Perl programmer bent on obfiscation. (in production code).

Re:Struts? (0)

Anonymous Coward | more than 11 years ago | (#4990145)

How big are your config files?

Show the full respect of Struts... (1)

mschoolbus (627182) | more than 11 years ago | (#4988718)

Without Struts, my project at work would be about 100 times more difficult than it already is.

I think Struts has a very bright future...

Re:Show the full respect of Struts... (2, Interesting)

mr.buddylee (541034) | more than 11 years ago | (#4989806)

I personnally think Struts makes things harder. I haven't gotten into it a lot, but it seems to take me a whole lot longer to get a project done with struts than if I just used scriplet code. The only reason I use it is because I have to, I sure wouldn't us it if I had a choice. It's limiting in what you can do, and the ways you can do it, there was little to no documentation (until now I suppose), and it's just confusing. I'll admit that I'm a novice JAVA programmer, but seriously, why use a tool that makes things more difficult. It's just a tool to use until the next big thing is pushed out by a group of programmers with too much time on their hands.

Re:Show the full respect of Struts... (0)

Anonymous Coward | more than 11 years ago | (#4990143)

You've apparently not done a lot a of web programming.

If you were, you would appreciate the framework.

Re:Show the full respect of Struts... (3, Insightful)

rutledjw (447990) | more than 11 years ago | (#4990359)

No, no, no. As you get going in Java you'll be the logic in it. As a novice programmer, it SHOULD take you a lot longer to use a tool like struts than use (whatever). You're still getting used to the syntax, flow and appropriate use of Java.

As you get going, there becomes a more elegant technique to using teh language. Tools like struts fill the need.

Learn what you can now and don't worry about it, the usefullness of struts will become evident as you progress.

Re:Show the full respect of Struts... (3, Insightful)

CorwinOfAmber (39299) | more than 11 years ago | (#4990518)

I haven't gotten into it a lot, but it seems to take me a whole lot longer to get a project done with struts than if I just used scriplet code.

Well of course it's going to be faster and easier (for you) to just put all of the code in scriptlets. But I sure wouldn't want to have to maintain your code. You don't separate your business logic from your display code because it's faster to develop it; you separate your code to make it easier to maintain, and more robust. Writing maintainable code is always going to be a bit more work in the short term, but it pays off over the long term.

MVC (2, Funny)

jimmyCarter (56088) | more than 11 years ago | (#4988729)

That's simple man.. Al Gore invented the MVC.

Not quite tired yet.... (0, Offtopic)

revscat (35618) | more than 11 years ago | (#4988834)

Maybe if we trot out the ol' "Al Gore invented X" meme for a few more years it might get tired, but it sure isn't yet. Hey! I have an idea! Maybe we can even COMBINE CLICHES!

  1. Have Al Gore invent the internet
  2. ???
  3. Profit!

Hahahaha. I'm so clever. And let me just take a moment to make a joke about cigars and interns. And maybe even drop some comment about Vincent Foster, if I'm feeling really bona fide. MMMMMhmm.

Re:Not quite tired yet.... (1)

volsung (378) | more than 11 years ago | (#4989545)

IN SOVIET RUSSIA, Internet invents Al Gore!

Re:MVC (0, Offtopic)

Malcontent (40834) | more than 11 years ago | (#4989003)

Al Gore did not invent the Internet but then again he never said that he did that's a republican lie that gets told over and over.

Despite the fact that Al Gore did not invent the internet he was chanpioning it when virtually every other politician knew nothing about it. Al Gore recognized the importance of the internet very early while the rest of the dunces in congress were totally ignorant about it.

Go ahead and do some research, I dare you. I know it will be harder then listening Bill )'Reilly and parroting what he says but you may find it educational.

Re:MVC (1, Offtopic)

jimmyCarter (56088) | more than 11 years ago | (#4989111)

Did you happen to see my nic? And it's not just some fashionably new nic since he won the Nobel Prize.

It's NYE and you are all trolls. ;)

Re:MVC (0)

Anonymous Coward | more than 11 years ago | (#4989154)

"During my service in the United States Congress, I took the initiative in creating the Internet."

- Al Gore, CNN Interview

Re:MVC (2)

ErikZ (55491) | more than 11 years ago | (#4989817)

You see, the problem is that no one cares. It's a funny story that doesn't really hurt anyone. Pointing out that it's technically wrong is like watching a movie and pointing out things that are impossible.

It's just annoying.

Little nitpick (4, Informative)

FortKnox (169099) | more than 11 years ago | (#4988731)

What is Struts?
Struts is a framework for developing web applications. It is a distilation of the current set of known best practices into a working code set that can be extended to meet almost any web application requirements. It part of the Jakarta Project at the Apache Software Foundation.

Struts is a Java/J2EE based framework. Although you could change it to use with other languages, it has taglibs and other features that are pretty much Java only.

Why such an influx of Struts books? Its becoming quite the standard in the Java/JSP+servlet world. J2EE developers are still being hired (hear that unemployed CS people?), and have been strong through the IT drought, and Struts experience is an even bigger plus.

Re:Little nitpick (1)

ideonode (163753) | more than 11 years ago | (#4988835)

Its becoming quite the standard in the Java/JSP+servlet world

Indeed. Another factor in the championing of structs is its featuring in the toolsets of products like BEA (yes, some may see BEA as a stinking pile of bloatware, but it is rather respected by many enterprise players).

Re:Little nitpick (1)

GiorgioG (225675) | more than 11 years ago | (#4988887)

J2EE developers are still being hired (hear that unemployed CS people?)...

You're making a fairly large assumption aren't you? - that they're being hired only because they know J2EE technology. I think not. J2EE developers are usually experienced (if not 'software architects' - whatever that means) and that's why they are still being hired. Anyone with 3+ years experience can find a job fairly easily.

Re:Little nitpick (1, Offtopic)

Carbonite (183181) | more than 11 years ago | (#4988966)

Anyone with 3+ years experience can find a job fairly easily

Speaking of fairly large assumptions...

Re:Little nitpick (1)

CaptainCap (194813) | more than 11 years ago | (#4989206)

Perhaps excluding those who are over-qualified (3.5+ years experience)

Re:Little nitpick (2)

rutledjw (447990) | more than 11 years ago | (#4990393)

I wouldn't call it easy, but Denver has been it hard. Having 3+ years and knowing what the f*ck you're talking about in an interview does help out.

I point out the latter as I've interviewed a LOT of people and I've seen lots of great resumes with Java exp and owners of those resumes who look at you blankly when you ask any degree of difficult question...

Re:Little nitpick (2, Informative)

bataras (169548) | more than 11 years ago | (#4988958)

Struts is NOT J2EE based. it's plain vanilla JSP/Servlets based

Re:Little nitpick (1, Informative)

Anonymous Coward | more than 11 years ago | (#4988982)

JSP/Servlets are a part of J2EE.
J2EE = JSP, Servlets, EJB (not just EJB).

Re:Little nitpick (1)

mark_lybarger (199098) | more than 11 years ago | (#4989271)

one container,
two containers,
three containers,

sure, it will work in the JSP/Servelet container only, but it also works nicely if you're using an EJB container as well.

the main point about struts is that it's a JSP based Model View Controler framework. actions and all that. Turbine/Velocity is another MVC framework that can be usefull if you're using one or two, or three containers. No books that I can see on the latter that i've seen, anyone interested in throwing one together?

Re:Little nitpick (1)

KwisatzHaderach (138176) | more than 11 years ago | (#4990569)

Mod the Coward up and bataras down. He seems to be assuming that J2EE == EJB.

Servlets are just as much a part of the specification.

Insider Perspective - Where are they now? .90 (-1, Offtopic)

Real World Stuff (561780) | more than 11 years ago | (#4988748)

REF: Sam Williams [] at

Educational Archive for Irony, where ever she is:

Same job. Different cubicle" With the promise of stock riches now a distant dream, VA Linux's former programmers keep the open-source faith.

By Sam Williams

July 31, 2002 | In 1999, when 22-year-old Linux developer Michael Jennings accepted a job with the promising, albeit slightly obscure, West Coast start-up company VA Linux Systems Inc., he had no idea he would be participating in one of the biggest roller-coaster rides in Silicon Valley history.

"To be perfectly blunt about it, I had no idea what an IPO was or what stock options meant," admits Jennings.

Three years and $1.4 billion in evaporated investors' money later, Jennings can no longer feign ignorance. Like a farmer who has seen a tornado from the inside, Jennings recalls the company's historic first day of public trading with a mixture of bemusement and awe.

"None of us expected it to be nearly as big as it was," he says, drifting back to Dec. 9, 1999, the day NASDAQ investors turned Jennings and many of his co-workers into momentary paper millionaires. "I don't think even the president of the company knew it was going to be such a massive deal."

That was then, of course. VA's soaring stock price -- propelled by almost every major investment fad of the late 1990s: dot-coms, b2b, open-source software -- would soon come hurtling earthward. By the end of 2000, the company was outpacing the NASDAQ collapse. Caught between plummeting market share and an investment community clamoring for profits, VA Linux dumped its core hardware business in the spring of 2001. In October 2001, after posting a quarterly loss of $290 million, VA Linux laid off the bulk of its technical staff, including Jennings.

One could forgive Jennings a moment's bitterness. Since leaving VA, Jennings has returned to his native Louisville, Ky., where he now works as director of engineering at N+1, a Linux services and training firm with no immediate IPO prospects. Asked to dish dirt on the company that pulled him west, however, Jennings, like many of his former co-workers, can only shake his head and wax nostalgic.

"VA was, without a doubt, the most incredible team of people I'd ever worked with," he says. "Laid-back. Fun. Interesting projects. The managers and V.P.s were all very approachable. For the most part, they treated the engineers just like peers.

"We were all a big group of friends."

Three years after leading the Linux charge, the words "VA Linux" elicit a complex mixture of emotions. To investors, they represent the ultimate betrayal: a can't-miss stock that missed big. To the company that changed its name to VA Software Inc. last December, they signify the distant past. To ex-employees like Jennings, however, they symbolize something larger. They symbolize a time when many of the world's best open-source programmers worked under the same roof, a time of promise and, ultimately, of failed opportunity. The epitome of investors' irrational exuberance to some, VA Linux has become the corporate equivalent of paradise lost to the open-source developers who used to work there.

Next page | It cost him $25,000 a year to work there, thanks to taxes on stock options


P2:: "Same job. Different cubicle" | 1, 2, 3

"I think, had they concentrated on what they were good at, which was basically creating Linux boxes better than everybody else, they would have done well," says Jeremy Allison, co-leader of the Samba project and a fellow ex-VA employee. "Basically, if they hadn't gone public, they'd be doing fine."

Such comments might qualify as a final twist of the knife to investors who bought into the company during its heyday, but as Allison is quick to note, it was VA Linux employees who bled the most following the company's moonshot IPO. Thanks to the alternative minimum tax -- an obscure tax that kicks in as soon as options are exercised and that can wallop employees who don't sell immediately -- employees who bought VA Linux shares with an intention to hold paid dearly for their loyalty.

"I know people who are going to be paying off the government for the rest of their lives," says Allison.

One such victim was Ted Arden, a former sales engineer who, thanks to VA's knockout opening-day performance and the SEC-mandated six-month "lockup" period, wound up owing more than $100,000 on $180,000 worth of vested stock. Subtracting total taxes from total salary and the money he finally did recoup from stock sales, Arden estimates it cost him $25,000 a year to be a VA Linux employee.

"Don't get me wrong," Arden says. "I had a blast there. It was one of those places where you would come in at 7 a.m. and you wouldn't leave until 1 or 2 in the morning, because you didn't want to miss anything."

Arden, like Jennings and Allison, keeps in touch with his former work mates via an ex-employee mailing list. The list goes out to roughly 100 people, of whom 20 or 30 participate on a regular basis. Arden says the discussions are candid, offering plenty of analysis of what went wrong and which managers should be sharing a bunk with Kenneth Lay at Club Fed. For the most part, however, the list offers a way to keep in touch with some of the best programmers in the business.

"People feel remorse more than anything," says Arden, now working at another Linux company. "At VA, we had more Linux knowledge in our tech support department than most companies had on their entire staff. It's sad that something like this could be brought down through mismanagement."

The term "mismanagement" gets batted about a lot in ex-VA circles. Most industry analysts credit the VA swoon to heavy hitters such as Compaq, Dell and IBM carving up the Linux server marketplace. According to International Data Corp. (IDC), VA Linux's market share in the entry-level server marketplace (IDC's term for servers costing below $100,000) plummeted 78 percent in 2001. That statistic is offset, however, by VA Linux's decision to get out of the hardware server market midway through the year. Nonetheless, says Arden, it glosses over internal mistakes that magnified the impact of lost sales.

"We were pre-building systems for deals that were forecasted but never closed," Arden says. "If you pre-build a million dollars worth of systems and you don't sell them, it's all on the books. That's where the mismanagement occurred."

VA Software representatives declined to comment for this story, but ex-employees like Doug Bone, chief operating officer of California Digital Corp., the Santa Clara company that purchased the bulk of VA Linux's hardware division in the fall of 2001, are still willing to plead the old management team's case.

According to Bone, the investment community itself was the ultimate culprit. Until the April 2000 market correction, Bone says, the bulk of VA Linux's clients were Web start-ups looking for low-cost Linux servers. When the investment tap shut off, demand crashed. With no hardware revenue to support expansion into other, more profitable arenas, company executives had to perform the equivalent of corporate triage.

"It was a simple Econ 101 effect," Bone says. "As soon as they saw contraction, the fixed costs became untenable."

A VA employee from 1994 to 2001, Bone, like Allison, is convinced that if his former employer had somehow missed the IPO window, it would still be a major player in the Linux server market today. He offers his own privately held company as evidence. Although California Digital does not release financial results, Bone says the company has found a sustainable niche and is "on record" as being profitable.

"The market is still strong," Bone says. "It's different than it was during the dot-com frenzy. You don't get as many people calling and demanding 100 servers within a month. What you do get are more biotech companies, more movie production companies and more oil exploration companies calling in and asking for Linux clusters."

Next page | Hopping from job to job, but working on the same software projects 1, 2, 3

---- P3::

As Bone is quick to admit, one major difference between the California Digital business model and the VA Linux model is cost. In 1999 VA Linux aggressively recruited programmers from throughout the open-source community, using the incentive of a big IPO payoff to distinguish itself from market rivals. Today, California Digital relies on a Bangalore-based engineering division to stay competitive. That makes it easy to understand why many open-source developers look back on the pre-IPO VA Linux with nostalgia.

Then again, time hasn't exactly been cruel to the ex-VA workforce. Because many had built up sizable reputations working on community development projects such as Samba, Enlightenment and the Linux kernel, few people contacted for this story seemed overly traumatized by the last 12 months. The same projects that once provided political cushion inside VA have performed equally well as flotation devices in the post-crash employment market.

"I didn't want to just run around and take the first job I could get," says Allison, recalling the few, brief weeks between working for VA Linux and working for rival hardware firm Hewlett-Packard. "There were plenty of companies wanting to fund Samba. It was mainly a matter of waiting until somebody came forward with the right contract."

Indeed, if the VA Linux collapse proves anything, it proves the continuity of open-source software projects and the growing power of the star programmers who run them. Reflecting on his current job, Allison sounds about as emotional as a major league baseball player who just switched uniforms.

"It's like a co-worker at SGI once said: 'Same job. Different cubicle.'"

For those working on less visible projects, the transition has been a little bumpier. Brian Finley is a former VA Linux sales engineer who also leads the development team of SystemImager, a software tool that automates the Linux installation process. During his days at VA Linux, Finley divided his time between providing software support to customers and working on SystemImager.

"During the downtime, I would work on SystemImager," Finley says. "It would make the periods of intense uptime that much more enjoyable."

Although Finley still finds SystemImager enjoyable, the number of companies willing to subsidize the work is small. Since leaving VA Linux, Finley has faced the age-old creator's dilemma.

"You want to be able to do the work you want to do, but you also want to be able to eat," says Finley, who, after a few months of contract work on non-SystemImager projects, has built up a roster of clients willing to fund SystemImager development. Clients include Hewlett-Packard, Compaq and Open Source Developers Network, or OSDN, an online subsidiary of VA Linux's current incarnation, VA Software Inc.

Because SystemImager is backed by the GPL (GNU Public License), Finley doesn't worry too much about companies misappropriating his work. Still, he has noticed a new twist to the creator's dilemma. Call it the creative manager's dilemma: Food, art or compatibility -- choose two.

"If what you're being paid to work on is specific as opposed to general, you're not getting paid to do the general maintenance work," Finley says. "If you don't find a way to fund that work too, then you ultimately end up with a piece of software that is buggy.

"It's a difficult balancing game."

Maybe that's why Finley's view of VA Linux is already sepia-toned. "It was one of the best jobs I ever had," says Finley, recalling the days when performing the usual open-source balancing act wasn't so difficult. "You were basically paid to work with Linux and do whatever you wanted to do."

Like the other veterans, Finley holds especially high regard for the pre-IPO days.

"Prior to the IPO, the company was small enough that each individual felt that their effort truly affected the company's success," Finley says. "After the IPO happened, there was a six-month period that no one could sell [shares]. I would say during that period -- I don't think that I'm alone in this -- I would have checked the stock once every five to 10 minutes. It was an exciting time. We even had a shell script written by [VA Linux CEO] Larry [Augustin] and modified by [Geoff] Mandrake [Harrison] that would go out to Yahoo, pull down the .csv file and parse it. Some people even had it running as a cron job."

Jennings, too, remembers the collective fascination with the VA Linux ticker price.

"There were a lot of people who would check the stock ticker multiple times a day and keep track of the minute ups and downs," he says. "Needless to say, it tended to be extremely counterproductive."

When the ticker price began its yearlong tumble, it didn't take long for stress levels to climb within the company. Through it all, however, Jennings remembers a general feeling of calm in the engineering department. Whether it was because developers were better at tuning out the bad news or simply shielded from market pressures by the nature of their open-source work, Jenning says that calm is one reason so many ex-VA employees remain in contact today.

"The way a lot of people see it is we were doing open-source before [VA Linux] and we've continued doing open source after VA Linux for the exact same reason: because we love to do it," Jennings says. "It was nice to get paid for it, but getting paid was always viewed as kind of a perk."

That many ex-VA Linux employees still get to hack for pay is probably the top reason so few complain when it comes to the former company. As the old high-tech saying goes, it's the pioneers who usually end up with the most arrows in their backs. Rather than lament what could have been, Jennings prefers to hold on to what was.

"I am not really in a position to point fingers," he says. "There are a lot of other people who were a lot closer to management, but I can say with absolute certainty it wasn't for lack of talent. And I'm not talking about myself. I'm talking about all the other people they had."

"All I can say is it was an honor to work with those people on a daily basis, and it's an honor to still have them as friends."

About the writer Sam Williams is a freelance reporter who covers software and software development culture. He is also the author of "Free as in Freedom: Richard Stallman's Crusade For Free Software."

Sound Off Send us a Letter to the Editor

Related stories Complete list of Salon's coverage of VA Linux

No idea what it does (3, Insightful)

dnoyeb (547705) | more than 11 years ago | (#4988754)

I still have NO IDEA what struts does. the struts website is not helpful in a brief overview. Saying it helps develop web applications is a joke. What does it replace because I can develop web apps without struts.

Should I be using it? Im too unknowledgeable to even know what question to ask. I use EJB, and I have a webapp. I'm just baffled.

Re:No idea what it does (1, Funny)

Anonymous Coward | more than 11 years ago | (#4988790)

Struts is a framework for people who like frameworks.

Re:No idea what it does (3, Informative)

revscat (35618) | more than 11 years ago | (#4988803)

Struts is an MVC-based framework for developing web apps. It helps to separate out the different layers of your application. You could use it with EJBs, if you wish, because it is mostly a means for separating out your business logic from your presentation.

Asking "should I be using it?" is difficult to answer, because it depends upon your requirements. But if you are developing a web application that requires a quick turnaround time and is easy to maintain, Struts will help you along.

Re:No idea what it does (1)

ChristTrekker (91442) | more than 11 years ago | (#4989291)

I thought we already had MVC with JSP/servlet/EJB. How does Struts change this? From what I can tell it's some sort of framework that handles form data validation. That's always rather tedious, so if Struts saves time it's a good deal.

Re:No idea what it does (3, Informative)

revscat (35618) | more than 11 years ago | (#4989442)

I thought we already had MVC with JSP/servlet/EJB. How does Struts change this? From what I can tell it's some sort of framework that handles form data validation. That's always rather tedious, so if Struts saves time it's a good deal.

Mmmm.... Part of Struts is validation, although technically it is a separate component. (See the Jakarta Commons Validator [] ) This is a minor (though extremely useful) part of it, however.

What makes Struts what it is are (arguably) ActionForms (basically, JavaBeans with some enhanced functionality) and ActionForwards/ActionMappings. These allow you to separate out the logic which operates upon data which will eventually be diplayed from the actual display of that data. Because solutions which depend upon JSPs tend to become a mass of unreusable scriplets, having this separation allows for a more maintainable site and avoids the pitfalls which have traditionally plagued JSPs.

Re:No idea what it does (1)

ChristTrekker (91442) | more than 11 years ago | (#4989813)

Because solutions which depend upon JSPs tend to become a mass of unreusable scriplets, having this separation allows for a more maintainable site and avoids the pitfalls which have traditionally plagued JSPs.

I suppose I'd "get it" better if I'd done more JSP development than I have. I guess I'm lacking the context to see how useful this is. I'm hoping to do write a small web tool for myself soon though, so I will read up on this and see if it clicks.

Re:No idea what it does (0)

Anonymous Coward | more than 11 years ago | (#4988812)

Struts is a framework that forces you to use the Model-View-Controller pattern.

Best way to explain it is to download it with tomcat, install it (it takes like 3 steps to get a sample struts app into tomcat), and play around with it.
Struts seperates everything out, has its own taglibs, and turns all your JSP's into actions.
If you know your MVC pattern, struts takes care of almost all the Controller part, leaving you much less to do.

Re:No idea what it does (5, Funny)

Boss, Pointy Haired (537010) | more than 11 years ago | (#4988979)

It replaces the tedium of having to write your own form handlers, IO verification and output generation with the tedium of having to learn Struts.

Re:No idea what it does (2)

Malcontent (40834) | more than 11 years ago | (#4989031)

Oh man that's funny as hell.

Re:No idea what it does (2)

rutledjw (447990) | more than 11 years ago | (#4990411)

Yeah, but it's a framework you fool! Is it possible to develop without a framework/methodology/pattern/architecture/tool?!?

Mmmm, kool-aid...

Re:No idea what it does (1)

mark_lybarger (199098) | more than 11 years ago | (#4989342)

i've looked over their site a few times too, and never really got what struts did either. "it's good if you've got a site with lots of forms" someone told me once. i had some time recently working with Turbine/velocity (implementing, the docs on the site are about the same) and now it kinda makes some sense.

if there's any bored document writers out there... jakarta and apache really need your donations! any corporations needing an extra tax write off? please donate a doc-writer to these projects.

media (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4988757)

--The Wall Street Journal is read by the people who
run the country.

--The New York Times is read by people who think they
run the country.

--The Washington Post is read by people who think they
ought to run the country.

--USA Today is read by people who think they ought to
run the country but don't understand The Washington Post.

--The Los Angeles Times is read by people who wouldn't
mind running the country, if they could spare the time.

--The Boston Globe is read by people whose parents used
to run the country.

--The New York Daily News is read by people who aren't
too sure who's running the country.

--The New York Post is read by people who don't care
who's running the country, as long as they do something

--The San Francisco Chronicle is read by people who aren't
sure there is a country, or that a country is a good idea
in the first place.

--The Miami Herald is read by people who are running
another country.

--The Chicago Tribune is read by people who live in the
Midwest, which readers of the other newspapers don't think
is part of the country.

--Slashdot is read by people that know enough to run the country

Struts is great, but... (4, Informative)

General_Corto (152906) | more than 11 years ago | (#4988762)

I've been working on a reasonably sized project for some time now (still undercover, so can't go into details)... I'd been looking for a good framework to use, and Struts looked like it fitted the bill.

Until I started dealing with the display (view) side of things.

Getting to grips with the Action and ActionForm stuff is simple, and I think that anyone could do it. However, because they expect you to use all the usual standard stuff (taglibs, etc), building new taglibs and dealing with that was going to be a nightmare.

Also, the HTML taglib, when told to output XHTML only, doesn't work. tags like the BASE tag aren't closed properly.

Fortunately, I'd been looking at using Tea earlier on (Jason Hunter uses it at [] ). Someone on the tea mailing list posted a link to a very useful article on using Struts for the backend of a web app and Tea for the front end. You can find it here: ea1/ [] ea2/ []

Re:Struts is great, but... (5, Informative)

MaxwellStreet (148915) | more than 11 years ago | (#4988809)

Velocity is another jakarta project that helps out on the view side of things. You might want to check it out . . .

Re:Struts is great, but... (0)

Anonymous Coward | more than 11 years ago | (#4989634)

try cocoon, simalar concept, allows you to use xsl to produce the view.

lol (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4988771)

this article is so fucking sad.

Happy Slashdot New Year (-1)

ReluctantBadger (550830) | more than 11 years ago | (#4988775)

Hey Slashboteers!! It's almost New Year! What will you be doing?

  • Lancing my zits using the folded out paperclip which I normally use in my CD-ROM's emergency eject hole.

  • Browsing Anime fan sites looking for mistakes in character names, especially those where hyphens, apostrophes and spaces have not been used to convey correct emphasis. If I find them, I let everyone know about it.

  • Looking for comments to reply to on Slashdot, with particular importance placed on those where I can type "Bzzzt. Wrong. Use Linux. Get a degree. There's no jobs. 3: Profit!"

  • Browsing Sourceforge for a project to join in with. It should preferably be at "5, Production/Stable" so that I can jump on the bandwagon, get my name in the credits and then claim I've been there from the start.

  • Cutting pictures of women out of fashion magazines and then crumpling up the forehead section, followed up by some seriously frantic masturbation to my new "Klingon Goddess"

  • Removing the stuffing from my little sister's teddy bear so that I can stick a D-Link router inside, take a digital picture and get a link from Slashdot to my homepage.

  • Picking my nose while scanning Tom's Hardware looking for the latest equipment, and then posting to every message board possible bitching about the lack of Linux driver support and closed APIs.

  • Searching eBay for more tentacle rape hentai to add to my watchlist.

  • Going over plans for Taco's Jubei cabinet, and then realising that it was all just a front for a secret wank room that could be used while Fent was in the house.

  • Replying to Junis' latest e-mail about Baywatch re-runs and the compression factor on DivX 5.02

  • Helping CowboyNeal remove the "Pepsi Big Gulp" bottle from his ass.

Re:Happy Slashdot New Year (0)

Anonymous Coward | more than 11 years ago | (#4989279)

It's funny because sadly, it's true! Spot on post all 'round. MOD PARENT UP!!

niggle? (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4988778)

You god damned racist pigs.

Struts, POUT. put it out (-1)

MondoMor (262881) | more than 11 years ago | (#4988786)

that's what you want from webbing.
Come, skript kiddies, your next toolkit is here

Full Lyrics [] .

Sheena Easton invented Struts.

java server faces (2, Insightful)

rhyd (614491) | more than 11 years ago | (#4988825)

i thought these [] were going to replace struts sometime soon...

Not for a while (3, Informative)

revscat (35618) | more than 11 years ago | (#4988867)

JSF could replace Struts one day, but not for a few years at the least. JSF is still in the early phases, whereas Struts has had several years to mature. I would definately keep an eye on JSF, but wouldn't recommend using it on non-experimental sites for a while.

Re:Not for a while (1)

dffuller (200455) | more than 11 years ago | (#4988975)

Interestingly enough, Craig McClanahan is both the lead on the Struts project and is also the spec writer for JSF (Java Server Faces). I think it will be interesting to see what results from this.

Re:Not for a while (1)

rhyd (614491) | more than 11 years ago | (#4989119)

advice here [] said if you're starting a completely new application which is expected to last a while you should be writing to JSF now:

"If you have existing Struts-based applications that use the existing HTML tag library, feel free to continue to use them if you wish. Struts 1.1 offers full support for this existing functionality.

Once the integration library becomes available, you should do some experimenting and prototyping to determine the effort required to migrate your apps to the new JSF component architecture (I'm betting that the extra functionality you gain by doing this will be well worth the effort in many cases). As described above, the actual migration can be done piecemeal -- it doesn't need to happen all at once.

For applications now (or about to be) under development that have relatively short term schedules (i.e. the next few months), you should probably stick with the existing HTML library.

For applications with a longer lead time, seriously consider waiting for the ability to use JSF components instead of the Struts HTML tag library. Doing this will let you leverage not only the standard HTML components that come with JSF out of the box, but also the rich libraries of JSF components likely to be created by third parties in the future (including Struts developers)."

Re:java server faces (1)

Brummund (447393) | more than 11 years ago | (#4989721)

I hope JSF is successful. I mainly work with J2EE, and I'm quite happy with most of the framework. However, I'm not that fond of JSP and equivalents.

This year, I had to do some .NET-projects, and the flexibility of ASP.NET (I've done a lot of ASP programming, but I generally hate it) impressed me. Using thirdparty controllers is a breeze. Need a flexible HTML editor on your web page? Download and plug it in. Need a component for displaying nice calendars etc? Download and plug it in. The code behind features are also nice, providing a rather easy way of implementing events, while still getting to compile it. (I hate having to check for type errors etc. in code by reloading a web page, like in ASP)

That to say, ASP.NET is (IMHO) quite similar to Struts, only with stronger commercial support.

As for the rest of .NET, I like "the J2EE way " better than .NET. The .NET development environment using is OK as long as it works. We've had a lot of strange problems with different hosting providers and/or VS. And Microsoft, FOR THE LOVE OF GOD, get rid of frontpage server extensions and replace it with something more maintable. It is2003 (soon :-)!

(And building j2ee projects with ant rocks.)

Somtimes we've just had to reboot the server and rebuild the project, and it would work. (I guess there are some problems regarding assemblies, but we haven't figured it out). And if someone has uploaded a new build of the system on IIS, and another developer starts up VS.NET, and VS.NET contains an older build in the cache, we have to refresh the project and rebuild. Beats me. It could be the server, but there is no fscking way of finding out. And that is another thing I like with J2EE: The application server is not that closely integrated with the OS, and more easily debugged. Yes, sometimes I have to restart WL or JBoss, but I don't have to reboot the server "just to be sure"

Re:java server faces (1)

Brummund (447393) | more than 11 years ago | (#4989770)

(And building j2ee projects with ant rocks.)

I forgot to mention Emacs and JDEE [] . :-)

Setting up JDEE to get all the features can be somewhat intimidating, but worth it. You'll get features like intelligent code completition, easy lookup in the jdk or your own documentation, integration with ant (jdee can parse build.xml and provide completition on build targets etc.) etc. For modelling, I'm trying out Poseidon UML [] , which is, AFAIK, based on ArgoUML. (And it is a java app, so it runs on Linux, which I use on my workstation)

A little Katz for the New Year (-1, Offtopic)

Real World Stuff (561780) | more than 11 years ago | (#4988839)

Original work: Jonkatz []

Archived for the future:
"Posted by JonKatz on 2:00 Wednesday 10 March 1999
from the stop-reading-if-you-are-super-moral dept.

Engineers, programmers and futurists believe that programmable robots that provide sexual companionship are likely to be commonplace in the 21st century, at more or less the same time as computers become able to process information as quickly as the human brain. The implications of tactile sexbots, likely to contain vibrators, sound systems and other equipment, are as significant as they are unexamined. If you thought the fight over the CDA was bad, wait till Rev. Falwell and his many pious friends in Congress discover Sexbots. For better or worse, computing might be breaking down another big wall.

Techno-futurists have a sorry record when it comes to predicting technology and the future. Remember the intergalactic travel that was the centerpiece of Disney's Tomorrowland? The magnetic hover cars, cancer cures, and climate-control systems that were supposed to have been long in place by the Millenium? And only a handful of technologists imagined how big the Net would get.

But here's a futuristic vision that's a far surer and troubling bet than e-sex: sexbots.

For several years now, engineers and futurists have been writing (quietly) in academic journals and other venues about the intuitive computer-programmed robots - sexual companions that contain vibrators to provide tactile stimulation and sounds systems to provide love talk - that some researchers believe are likely to become commonplace in the next century.

A few years ago, these predictions could have been brushed off as more digital hype, but computers are obviously becoming more intelligent and intuitive, and are fast processing information as rapidly as the human brain. Inventors and futurists like Ray Kurzweil (author of The Age of Spiritual Machines), are guaranteeing that computers will equal or surpass human intelligence early in the 21st century.

So sexbots not only don't seem far-fetched, they seem likely.

The contemporary news media, odd in many ways, are never more so than when it comes to their reticence to talk openly about sex (unless it's Presidential). They talk about sex scandals and Viagra, but the ordinary experience of sexuality is almost a taboo. The Net has liberated sex from XXX-rated movie theaters and porn parlors - it's the third biggest money-maker online, after e-trading and shopping.

For better or worse, it's hard to think of a bigger killer app for computing and software than sexbots. According to a computing engineer who asked not to be quoted, prototypes of sexbots already exist in Japan.

"I guarantee you," he e-mailed me, "that within 25 years, programmable, digital sexbots will be in many, if not most, American homes and apartments." The idea of sexbots will be horrifying to many, for whom the very idea of mechanized, roboticized human passion is beyond any Orwellian nightmare. Mary Shelley, who warned in the novel "Frankenstein" about scientists playing God, and the horrors of unthinking technology, would have flipped-out over the very idea of sexbots. Yet for some people - the lonely, the severely handicapped, the isolated - sexbots could be a great relief and release. And for others - unhappy spouses, troubled adolescents - digitalized, mechanized sexuality is an open invitation to addiction or to avoiding problems of face-to-face human contact. Robotic sex would also eliminate the emotional component of sex. Like fertility drugs and cloning, this is the kind of technological issue in urgent need of discussion and consideration, even though history suggests it won't be thought about much at all in advance. Like the drugs that give couples the option of having seven or eight children at once, or the medical technology that prolongs life sometimes beyond reason, sexbots, will simply be here one day, and we'll be on our own when they appear. But sexbots are a techno-prediction that has the ring of truth. Writer Joel Snell predicted in l997 (he's quoted in Richard Rhodes new book Visions of Technology) that robots providing sexual companionship were likely to see widespread use in the future. Snell could foresee the problems. Marriages might be damaged or destroyed if spouses choose sex with sexbots over making love with their mates. Jealous lovers might destroy sexbot rivals, or sue manufacturers for emotional damage. On the other hand, Snell pointed out, people seeking clarity about their sexual identities would have a safe, reliable way to experiment. Heterosexuals might use same-sex sexbots to experiment with homosexuality or bi-sexuality. Gay people might use other-sex sexbots to try out heterosexuality. Predators with sexual addictions might no longer prey on human beings. Given that people become addicted to all sorts of pleasures from slot machines to e-mail, sexbot addiction might be inevitable. Users could become obsessed by their ever-faithful, willing-to-please sexbot lovers that never say no or get headaches, and rearrange their lives to accommodate their addictions. Support groups are inevitable. Or perhaps, Snell speculates, a new category of sexuality might emerge among humans - the technovirgin, people who find it simpler, perhaps even preferable, to have sex exclusively with sexbots. This would avoid all the emotional and physical complications of having sex with people. Like wondering if it was as good for them as it was for you. Or as bad.

Intuitive and recognotion technologies are already changing computing, from search engines to recognition software to voice recognition. Sexbots would almost surely be programmed to be highly intuitive, keeping track of what worked and what didn't. They would become better sexual partners as they learned more about their human counterparts, storing everything from gasps of pleasure to frequency of orgasm in their memory banks. Every time they had sex with a human, it might get better.

Meanwhile, sexually- transmitted diseases might fall, along with teen pregnancy, abortions, pedophilia, prostitution and Viagra prescriptions. The divorce rate might plummet as well, since Sexbots could keep marital partners happy. The affair itself might become outmoded. Why take the risk when your sexbot is waiting to meet your needs?

Technology never works in predictable ways. The idea that computing machines could take over the function of human passion is as chilling as it is fascinating. But it's also almost totally unexplored. Neo-Luddites will have a field day with the advent of digital or robotic sex, as will parents, politicians, teachers, moral guardians. If local communities flip out whenever Johnny logs onto the Playboy website, and Congress twice passed blatantly unconstitutional Communications Decency Acts to regulate "decent" speech online, how might they respond to the idea of sexbots sold next to Imacs at Compusa?

Sex is a hair-trigger issue in American politics, and the idea of machines performing it round-the-clock will rock some of the most powerful elements in society. From information to MP3's and Open Source software, computing and the Internet is about freeing up ideas and information and giving individual people more control over their own lives. It's logical that this relentless empowerment would extend to experiences like sexuality.

Sexbots seem inevitable. But in a culture that refuses to think much about either technology or sex, the one thing we do know is that we won't be ready when they get here.


Junis was a TROLL

Car parts? (-1, Offtopic)

Lt Razak (631189) | more than 11 years ago | (#4988842)

What does car parts have to do with slashdot, and computers?

Re:Car parts? (0, Troll)

Real World Stuff (561780) | more than 11 years ago | (#4988967)

Ok, might be a troll but I'll bite.

Gluh glug...glub.

Rooty poot!

was the Struts Kick Start site built with Struts? (0)

Anonymous Coward | more than 11 years ago | (#4988845)

Someone there doesn't know how to use it then. The first XML RSS link points to localhost:5335.

What the big deal with Struts... (1, Interesting)

Anonymous Coward | more than 11 years ago | (#4988846)

Don't get me wrong, Struts is great and I am currently using it in my applications... But, I have to ask, what the big friggin' deal with struts - why all the hype...

Strust is just an implementation of what has already been developed by several companies - I will use Apple as an example. The same sort of thing is done with WebObjects in that the HTML from end and back end Java (or Obj-C) is linked with the need to create any real glue to connect them - it just sort of does it for you - with a nice IDE I might add.

WebObjects (like Struts) allows a developer to connect front end HTML to a server and pass data back and forth so that it's easier to deal with on the server...

Okay so why the rant? Well do you really hear about WebObjects being used all that much, NO! The reason (outside of the fact that when it was a NeXT product it use to cost a forture) it that the learning curve is wicked steep. That is where I see Strust going, it's a great technology, can do all sorts of cool stuff, will ease development but requires some time to get ones head around how it works.

I have seen more than a few projects that claim they use Strust when in fact they use maybe 5% of Strust and still need to use code to glue the front and middle tiers together. It's a real shame that we do not have really nice editor integration - ya ya, I know a few editors have the integration but face it folks, they all suck.

What we need is one of the big guns to step up to the plate and really integrate (and support) struts integration *wink wink* Borland...

Just my .02

Re:What the big deal with Struts... (1)

TapestryDude (631153) | more than 11 years ago | (#4989376)

I just can't resist plugging Tapestry [] , which follows the concepts of WebObjects but runs with it ... and is open source.

Tapestry has a great plugin for Eclipse called "Spindle".

The learning curve can be a bit steep, but not as steep as Struts in many ways (I use Struts at my current job, and it was a massive pain for me to shift gears and work within the limitations of Struts).

Meanwhile we're changing the framework and improving the documentation to make Tapestry the easiest to use web framework out there.

Re:What the big deal with Struts... (2)

richieb (3277) | more than 11 years ago | (#4989593)

The learning curve can be a bit steep, but not as steep as Struts in many ways (I use Struts at my current job, and it was a massive pain for me to shift gears and work within the limitations of Struts).

So how about a quick comparison of Tapestry and Struts? What's easy to do with Tapestry that's hard with Struts?

Tapestry and Struts (1)

TapestryDude (631153) | more than 11 years ago | (#4990351)

Got an hour or two?

First off, I probably shouldn't have even brought up Tapestry, I'm generating a bad reputation for trying to monopolize discussions and steer them towards Tapestry.

Struts rounds off the rough edges of servlet/JSP development. It does a little streamlining, such as creating an abstraction between actions and JSPs. Actions are subclasses of a struts-provided class and are very, very similar to servlets ... in fact, they must be stateless, just like a servlet.

JSPs are called "forwards" and, in fact, the plumbing doesn't require that the output be JSPs, you can plug in other templating systems such as Velocity.

There's standard taglibs that help with creating URLs that reference actions, help with building forms, and there's a system, called form beans, where query parameters are picked up and dumped in as properties of a bean, which is then passed to an action for processing.

That's really about it.

Tapestry is simply a different kind of beast. It's goals are different ... it doesn't round out the edges of the servlet API ... it makes the servlet API irrlevant to the developer. You create Tapestry applications without thinking about URLs, query parameters or any of that jazz. It's all "objects, methods and properties".

Let's take a simple form example. In Struts you would have to

  • Create a JSP
  • Register the JSP in the struts_config.xml
  • Create a html:form tag and identify the action it submits into
  • Create html:textfield and etc. tags. These pull properties from domain objects and create HTML form elements from them.
  • Define a form bean class to receive the submitted values
  • Register the form bean in struts_config.xml
  • Create an action to receive the form submission (and register it in struts_config.xml)
  • Put code in your action to extract properties from the form bean and apply them to your business objects

Struts doesn't have any kind of namespace management, so if you are on a a big team, you have to be careful to name things uniquely.

In Tapestry, you would

  • Create a new page template
  • Create a page specification for that template
  • Add a Form component to the template
  • Add various form components to the template
  • Define a listener method for the Form component
  • Create a page subclass
  • Create the listener method for the form

Although this looks similar, its much easier in Tapestry. Everything you need to do is localized in the three resources of the page (the specification, the template or the class). You write very, very little code ... instead, you declare what you want the framework to do inside the page specification (an XML document), or even inside the HTML template (more like taglibs, and a 2.4 feature in progress right now).

These page specification entries are pretty short, for example:

<component id="inputName" type="TextField">

<binding name="value" expression=""/>

This says "use a TextField component, bind its value parameter to the name property of the employee property of the page". This assumes that your page class provides a JavaBeans property, "employee". The accessor method knows how to obtain this object from a backend database or EJB.

You and the other developers aren't conflicting on access to struts_config.xml. No change that another developer makes to thier page will break yours. Name conflicts simply can't happen ... each page is like a little application unto itself.

In both frameworks you have to provide the business object to the form. In Struts, an action has to store a bean as a HttpServletRequest. In Tapestry, the page provides an accessor method that exposes the business objects to the components on the page.

Tapestry does much more work for you when the form is submitted. Notice that you don't specify a URL, action, page or anything with a Form component, you simply tell the Form component what method to invoke when the form is submitted.

The form components will pull request parameters, convert the parameters to correct Java types, and apply changes to the properties of the business object. If you are using the validating text field component, then more conversions and validations occur, automatically (and properties are only updated if the input is valid).

Once all the properties have been set, the Form will invoke the listener method which carries things forward from there, including selecting which page will render the response.

On something like a login page (i.e., user name and password), you don't need a seperate business object; your form components can simply update corresponding properties of the page object itself.

Right there is one of the big differences; the objects Tapestry users work on are stateful, not stateless. You don't have to deal with that problematic indirection (storing everything as request or session attributes). Tapestry does the shuffling of data to and from the session for you, invisibly. It uses object pooling so that you code naturally (objects with methods and properties) without worrying about multi-threading issues.

Now, that's just off the top of my head and doesn't scratch the surface of what Tapestry can do. The important thing is that its all about components, and creating new components (and even packaging them into libraries of components) is a snap, in fact its often a necessary and natural part of creating an application.

Unlike taglibs, Tapestry components can (and usually do), have their own templates and often are constructed from other components. Very natural, much more like a Swing GUI in terms of composition.

Because all of the request dispatching is performed by the framework (both during render, when the framework creates URLs, and in subsequent requests, when the framework interprets those same URLs), components can have thier own private listeners and behaviors.

Thus you can have things like MindBridge's Table component, that has sortable column headings. The links for the headings are components embedded within the Table component, and the Table component provides the listeners for those links. You can have ten Table components on ten different pages, or ten on the same page and everything just works, no questions asked.

Everything in Tapestry is designed to assist the developer ... wringing more functionality out of less effort. When things go wrong, it has incredible exception reporting.

Right now we're working on release 2.4 which includes significant improvements that will make Tapestry the easiest (and still, most powerful) web app framework available.

There's reams of documentation at the Tapestry Home Page [] and you might just want to check it out (if you want something more coherent).

NOT a fix all (0)

Anonymous Coward | more than 11 years ago | (#4988880)

I like struts and think it is a good step forward, but I have to nit pick. MVC works great in environment where the business logic and functional requirements rarely change. In an environment where requirements change daily and weekly, MVC is a burden on the developers. In those cases a page centric approach is more desireable. If for example your site uses lots of banners and that logic changes rapidly, having it in bean makes life harder than it should. Some one is going to argue, "you didn't do a good enough job generalising it." Sometimes that is a luxury you don't have. How many people have worked in shops where there were no written requirements and requests for changes and new feature are sent every day. Struts borrows some ideas from swing and awt. If your sitaution is one that has an established development process with rigorous requirements stage, then struts should work. If not, look else where.

Re:NOT a fix all (0)

Anonymous Coward | more than 11 years ago | (#4988944)

If your business logic and functional requirements change daily (what in THE hell do you do?), then you need to get a rules engine. They are a fortune, and the cost is enormous, but it abstracts the business logic out so you can maintain constant change. Its what major financial and business sites use.

BTW - you can attach struts to a rules engine. But it was a good troll (I bit)

Re:NOT a fix all (0)

Anonymous Coward | more than 11 years ago | (#4989238)

The first poster is correct that separate logics will burn almost everyone when things get complex. Now you say "a rules engine" and leave it at that. Now THAT is a troll.

Re:NOT a fix all (0)

Anonymous Coward | more than 11 years ago | (#4989244)

I guess you've never worked in a startup. I've had similar experiences in startups where CEO's, CTO's and PM all ask for new features or change features day to day. Of course the solution to that problem is find a new job where development follows a process. It's java right, so obviously you can hook any number of Java expert system shells to it. If the managers can't make up their mind what features they want, you think they will fork out money for a rules engine :) One could say those situations are hopeless to begin with, but in these times you have to make a living.

ok folks (2, Insightful)

Anonymous Coward | more than 11 years ago | (#4988886)

say it with me now ...

"web-work is monkey-work"
"web-work is not amazing"
"web-work takes a pea sized brain"

i should know - i do web work. because it pays.
because some bunch of fools decided to pay me for
it does not make it clever. because some bunch of
fools decided to pay You for it definitely doesn't
make it clever. step back and look at what you
do and then tell yourself there is anything
remotely complex in there. there isn't. its
crap. its not scottish its crap. quit selling
me books about crap. quit pushing your crap on
everyone else. crap crap crap crap crap.

Re:ok folks (0)

Anonymous Coward | more than 11 years ago | (#4988965)

ummmm... are you talking about writing HTML pages or real applications?

Re:ok folks (2, Insightful)

fraxas (584069) | more than 11 years ago | (#4989012)

The majority of web-work -- as you put it -- is crap.

Lucky for us, most of web application development isn't web work -- it's application development. So we're not so crapful after all.

Who/what is Start... (0)

Anonymous Coward | more than 11 years ago | (#4988895)

...and why is Strut kicking it? In other words, why would I even look at a book that can't even get its title right?

Struts is GARBAGE (0)

Anonymous Coward | more than 11 years ago | (#4988957)

It's a overhyped, overcomplicated, manager-type
buzzword compliant "API/framework". It's the
(a)moral equivalent of a 1000 line C++ program
to print "hello world". Those who "get" dynamic
web page creation - don't use struts. It's
a runaway buzzword train and it's a good way
to seperate the wheat from the chaff - if
someone claims to be a "struts programmer", pray
that your competition hires him

Re:Struts is GARBAGE (4, Informative)

Lysol (11150) | more than 11 years ago | (#4990142)

Not true at all. I've been following Struts for a *long* time and depending on the project it can make a huge difference. Sure, you can code page to page, embed the logic wherever and move on your merry way. But adverse things will definitely start to happen when:

1. you are no longer 'the man' and the mgmt rolls in the html guy(s)/gal(s). most html people can deal with <xml style markup> than <%java scriptlet%> stlye <%blocks%> (i won't even get into logic flow in scriptlet blocks). separation of presentation logic from biz logic; speaks for itself. and it's possible with scripting languages, but tough.

2. you want to extend the app. 'oh, but marketing want's to have their server also come in on that url that you did last year'. true, you could accomplish extension well with scripting language, but the delegation with struts/MVC us much cleaner and more maintainable.

3. you want to debug/qa. struts is tested and kid approved. i'm going thru something right now where our system has bugs and no one really knows cuz different people have worked on each others code and did everything differently. and even on a huge project in the past i had done, it was still hard for me to figure out flows and such when they were scripted from page to page. a unified framework helps resolve those differences in coding and thusly, easier to debug.

And I'm sure there's even more things that I haven't listed. One issue to really consider is do you want a page to page thing - which is good for proof of concept, quick and dirty. Or do you want something you can live with for the next year or so? Using a framework like struts will make your long term much easier.

For the biggest project I worked on, a major airline portal, we rolled our own MVC framework. This was prior to struts and yet in the end, the code was very similar. Their system runs on over 100 Sun CPUs and has been cranking away since they launched a few years back, without a major crash or anything.

This stuff does work and the bigger the project, the better. It's a little tough to get in the beginning, but after you implement it, you start to see that it makes sense. I feel tho, it's definitely more of an 'enterprise' thing than a small 20 page site; altho, u could use it for a small site if you wanted, no problem.

MVC... (2)

blamanj (253811) | more than 11 years ago | (#4988962)

...or model/view/controller, was invented by Trygve Reenskaug, and first appeared in Smalltalk at Xerox Parc.

Is it just me...? (3, Insightful)

Malic (15038) | more than 11 years ago | (#4989065)

...or is it that Struts, JavaServer Faces and MVC methodologies merely enforce good coding techniques/styles that one should be using anyway? Regardless of if you are using PHP, Perl, etc.

Or is there something more here?

Sometimes I think Java, OO and other development technologies are like grammer school teachers hovering over our heads saying, "Now, we *know* you are going to be sloppy if left on your own, so are going box you in so that you CAN'T do those sloppy things."

Except that you still can. VERY easy to understand and maintain applications can be coding procedual languages. VERY difficult to understand and maintain applications can be written in OO languages.

But I digress... by nature.

Re:Is it just me...? (1)

mark_lybarger (199098) | more than 11 years ago | (#4989312)

um sure, it could be used in other areas of software development too, but is there a framework (class libraries and examples/description of how to use them) available?

MVC is an abstract concept, struts is one implementation. Is there an implementation for Perl? maybe those GNU folks need to get started on their own MVC implementation. Afterall, they don't seem to like any implementation they can't kontrol ;).

Re:Is it just me...? (2)

revscat (35618) | more than 11 years ago | (#4989359)

...or is it that Struts, JavaServer Faces and MVC methodologies merely enforce good coding techniques/styles that one should be using anyway? Regardless of if you are using PHP, Perl, etc.

Yes. That is indeed largely their purpose. I don't see how that's a bad thing given that you almost always develop with people who have varying degrees of discipline when it comes to sticking with good coding practices. Some (like me, honestly) are damn near fanatical when it comes to sticking to plan. Others don't care as much, so long as the job gets done.

Sometimes I think Java, OO and other development technologies are like grammer school teachers hovering over our heads saying, "Now, we *know* you are going to be sloppy if left on your own, so are going box you in so that you CAN'T do those sloppy things." Except that you still can. VERY easy to understand and maintain applications can be coding procedual languages. VERY difficult to understand and maintain applications can be written in OO languages.

I think that both cases depend upon the quality of the code(r), and what you personally prefer. I tend to find OO solutions more elegant and easier to maintain, whereas it has been my experience that with functional languages it is dangerously easy to wind up with an unmaintainable and barely understandable mass of spaghetti code. This is especially true whenever time begins to run out and deadlines approach: people freak out and start slapping out code that they would normally be embarrased about. Having a structure like Struts in place helps to keep this from happening.

This is not to say, of course, that people don't make classes that are nothing more than a series of

public static final
methods, and that wind up behaving exactly like the procedural languages. In any language worth it's salt it will be possible to code both well and badly.

Re:Is it just me...? (1)

deaconBlue (594063) | more than 11 years ago | (#4990149)

1. MVC is, definitionally, a pattern of good coding style/technique. That doesn't mean that great programmers should intuit MVC, though they might, but now at least we 'know it when we see it.' It's got a proven track-record and kids should get a dose of it in school.

2. Traditional CGI programming, little scripts here and there making web-pages, is REALLY REALLY exhausting to make MVC. It is definitely possible, but Cocoon and Struts make it MUCH easier.

3. Finally, one sentiment that keeps coming up is: ok, so I trade doing it 'well' the old way and working my butt-off OR I work my butt-off learning the frawework to do it the new way. I think this is mistaken. My experience is that when good programmers encounter good frameworks, they can intuit their way around fairly quickly.

Personally, Cocoon and Struts were like a cold drink of water and made me feel less alone in the desert.

What's not so good? (3, Interesting)

Brummund (447393) | more than 11 years ago | (#4989070)

Just one niggle, and it's more of a programming style issue, but in their example code they have references to their business objects. They explain that it is important to separate out business logic from action logic, which it is, but then proceed to use their business object within the action.

Hm. I'm not quite sure I follow you here. I haven't read the book, only your review, and I'm a bit puzzled by your statement regarding business objects in actions.

Is it so that the example code for the actions contain business logic directly, or do they use business objects without wrapping them in controllers (like a session bean)

If they're using session beans or controllers in the actions, I can perfectly understand that. You have to use the business logic somewhere. :-)

On my current project, we have a (yuck) flash-client (using macromedia's Flash Remoting MX, btw. nice thing, saves a lot of time usually spent on devicing your own xml-based protocol to communicate with the flash client) . The flash client accesses a standard java class/bean. This bean contains code to massage the output from a session bean to simple data structures more suitable for a flash client (and programmer. Ok, low blow. :-)

The session bean acts as an facade to all the functionality required by/provided to the client (authentication, fetching and updating data etc.) The system has about 10 session beans and quite a few entities.

We've used this approach before, and when we had to add some new types of clients, we only have to add a bean convert to/from client requests and the controller (session bean).
(At first, we only developed a Flash client. Later, we added a SMS client and a web client.)

Struts 1.1 (1)

Free Heel Skier (466717) | more than 11 years ago | (#4989100)

Struts 1.1 is currently in Beta3, and it is going to fill in many of the gaps where the previous releases of Struts was deficient. I have been developing in struts for quite a while now (almost 2 years), and have had to desing a couple of patterns to make some things happen. This should all be fixed.

Struts 1.1 has added nice features like Dynamic Action Forms, integration with JAAS for request level authorization, and separation of functionality through modules.

If you have not previously used Struts this may not mean anything to you. Trust me when I tell you that these advances will be very welcomed by Struts users. I higly reccomend learning Struts, however the existing books only cover previous versions. If you are looking into using Struts on a future project you may want to check out the upcoming release.

Life is like an elevator, sometimes you get the elevator and sometimes you get the shaft.

Husted book (1, Informative)

Anonymous Coward | more than 11 years ago | (#4989212)

Actually, what I would like to see is a review of the Ted Husted book Struts in Action [] , ISBN 1930110502. It was listed as not published yet yesterday at, but is now listed [] as "usually ships in 13 to 14 days." It is available sooner at [] or direct from the publisher. [] Husted is one of the more well-known Struts gurus, and I think his book has been much more anticipated than the one reviewed.

One thing I like is that the publisher, Manning Publications [] , lets you buy a PDF version of the book for half price. They will also deduct the cost of the PDF version if you decide to buy the tree version later. There are a couple of sample chapters [] online, one about integration with Tiles and another about validation. The sample chapters I have read seem very complete and well-written.

I know this post sounds like an advert for the book, but I'm not associated with the book in any way. I'm just a Struts developer who's been waiting for a good Struts book to come along, and the Husted book looks like it might be the one.

Re:Husted book (0)

Anonymous Coward | more than 11 years ago | (#4989867)

already reviewed at the slashdizzy: .s html?tid=156

looks like the abstration in (2, Insightful)

xdrone (597762) | more than 11 years ago | (#4989296)

his looks like the abstraction used in which changes the interaction of web pages to an event based model rather than just posting back forth and checking user values. (correct me if i'm wrong)

it's a big step forward cleaning up web programming. i'm sure it will come to php sooner or later, although i'm happy with old stylee.

Wow... (0)

Anonymous Coward | more than 11 years ago | (#4989303)

...what a thin review. The styrofoam cup is more dense that this. Makes me want to run right out and buy this - not.

If you're not committed yet, check out XMLC. (2)

brad.hill (21936) | more than 11 years ago | (#4989465)

XMLC and Barracuda offer a nice alternative to Struts without all the crap of JSP and the enormous clusterf**k single XML file that Struts uses.

XMLC enforces a nice clean seperation of code and presentation data and has a great framework (Barracuda) that does everything Struts does and more. (polymorphic event dispatch and real OO event handling, for example)

Check it out at [] . There's also a great book out on XMLC, if you prefer paper.

Re:If you're not committed yet, check out XMLC. (1)

pihana (637632) | more than 11 years ago | (#4989633)

Yep, and Barracuda also supports components. Components can be bound to a view, and will perform the rendering tasks. I've been using XMLC for 2 years, I'm sooo glad I don't have to use JSP,PHP,ASP or other presentation languages.

Re:If you're not committed yet, check out XMLC. (1)

texas_mustang (555513) | more than 11 years ago | (#4989929)

Our app is struts based & we have it split into multiple subprojects. Each subproject has it's own struts-config.xml. At build time we use an Ant task to combine into one file. Works flawlessly and we can mix & match subprojects by release.

I do agree with you about JSP. I preach to our team that anything you do with javascript or scriptlets can be done with a custom JSP tag, but in the end it just comes up short and we end up writing script or generating it. Either way I'd rather not do it.

similar to CSS? (2)

miltimj (605927) | more than 11 years ago | (#4989470)

I've never used Struts, and my web apps are almost all Perl/CGI, but I'm still curious (of course)..

Would this analogy be reasonably accurate?

Struts : web apps as Cascading Style Sheets : HTML ?

Re:similar to CSS? (2)

Phoukka (83589) | more than 11 years ago | (#4989720)

Err, no. Or, not really. Or maybe, just not quite. You see, on one level, CSS is used to separate presentation from HTML, leaving structure & semantic meaning only in the HTML code. Struts is used to enforce separation of business logic from presentation logic. So, at a really REALLY high level, they do similar things. But the analogy dissolves as soon as you get to even 50000'.

With Perl/CGI + (X)HTML + CSS, you very likely are coding in a procedural style (feel free to correct me if I'm wrong -- or, just don't take it personally, let me explain the idea) in your CGI script. With Struts + (Tomcat or other servlet container) + JSP + HTML + CSS, well, things get more complicated -- yet easier to code and maintain.

With just Tomcat + JSP, you can code up a servlet, the Java equivalent of /successor to a CGI script, and that one servlet will handle all input, all business logic, and all output. But this style of coding is generally considered bad, because it is much more complex than it should be -- it hinders maintenance, updates, performance, clarity, etc. Java, being object-oriented, allows the programmer to separate business logic from web app control flow from presentation. However, it doesn't enforce it. And that separation is not necessarily easy, it requires discipline and creates more work if the coder starts from scratch. Which is where Struts comes in to play. Struts is a framework of Java code that works with Tomcat (or other servlet container), that enforces separation of business logic from control from presentation, and provides lots and lots of goodies that make it much much easier to code the application.

So, if you have an application that isn't throw-away, one that will need to be maintained and possibly changed later, Struts makes building the application easier because it keeps unrelated parts from bumping into each other, and has lots of pre-fabbed goodies.

XSP vs. JSP?? (1)

Hurricane_Bill (96738) | more than 11 years ago | (#4989516)

Can anybody help explain the difference, as well as pro's/cons of using XSP vs. Java?

I've been thinking about learning JSP for web development but recently I've started looking at Apache Cocoon which is an XML framework, built on java. It uses XSP to call java business logic which then gets rendered in html. This looks very similar to JSP (except for the XML stuff).

Re:XSP vs. JSP?? (1)

deaconBlue (594063) | more than 11 years ago | (#4989981)

I think your post contains the answer.

ASP and JSP, so called embedded languages, allowed developers to install dynamic elements in an otherwise static page. A step forward in the division of labor and code re-use; developer A submits the 'date & time' tag or fragment to the HTML designer and, voila, date and time is stamped into the page or some database output or whatever.

Problem: because the page would then dump to the browser, the JSP or ASP tags were also responsible for their 'chunk' of presentation. We've learned that this 'mixing' of controller and view or data and presentation is inflexible, but sometimes expedient and easy to explain.

Answers: Cocoon and Struts are strong in 'separation of concerns' or the breaking apart of the data-model, the presentation or view of data, and the controller that binds the two.

Cocoon begins by generating content via 'generators' and xsp tags which merely create xml data. This xml is later styled into something pretty. If you don't like the presentation, you can always adjust the style. If the data source changes, just adjust the generator or revise the xsp.

Cocoon is strongest in content intensive endeavors, like catalogs and magazines, blogs and so forth.

If the need is to build something implicity dynamic, a real web-based application with a high degree of interactivity and non-determined and perhaps customized presenations, struts may be your answer. Think of porting one of your favorite apps, maybe an enterprise e-mail/scheduling system or shop-floor planning application, to the web. Struts is very strong here and 'plays' very well with other EJB based 'models' and 'controllers' in the enterprise.


Struts ported to PHP (2, Interesting)

tetranz (446973) | more than 11 years ago | (#4989728)

Phrame []

Just more retreading on the same tire... (2, Insightful)

javabandit (464204) | more than 11 years ago | (#4989837)

I have used Struts, and personally, I really don't see anything special about it. While I agree that having "scriptlets" in your HTML is generally bad form, I have similar problems with putting Java-centric tags in presentation code as well.

Struts, Java Server Faces, Servlets... All of these tools do not solve a real issue at hand, which is that when it comes to internet/HTML applications, the presentation layer should not tie you to any language, or to any language-specific framework.

I should be able to write a "View" that simply Looks at a standard XML-based model, and construct my page from that. Without having to put any kind of Java or Java-based tags in my code. XSLT comes far in doing that, but has a few shortcomings.

The missing piece is a standardized interface upon which posts/gets etc... can be performed without regard to the View, or to the language used in the application server. This interface should of course handle necessary things such as session management, authentication, and the like. This way, we could change out our underlying backend without having to change the presentation code at all.

This is where I give CORBA a lot of props. It definitely had some problems, but it was a wonderful intermediate interface that didn't care who its client was. As long as the client spoke IIOP... life was good.

The same should be done for web interfaces. The presentation layer should not care beans about the backend... expect that the container is aware of a common/neutral interface. No vendor specific tags. No language-specific tags. No proprietary garbage that ties you to any particular container.

XML, XSLT, XSD are great. Java is great. All these technologies are great. But the lack of a common interface/framework which seamlessly ties them together for web applications is the real problem.

Business Object Persistance and Caching (1)

Apoptosis66 (572145) | more than 11 years ago | (#4989848)

We are doing a rewrite of our web application, and have pretty much decided to use struts. However, we can not decide on what to use for object persistance and caching. We have ruled out CMP for performance reasons, BC4J is a option but many of us don't like being tied to Oracle. Are there any open source frameworks for doing this that someone has used successfully and are happy with? Object Relational Bridge? Torque? We could really use some outside input on this.

Re:Business Object Persistance and Caching (1)

TapestryDude (631153) | more than 11 years ago | (#4990380)

Happy developers use Tapestry (not Struts) for presentation, and Cayanne or Turbine for persistance. Cayanne is inspired by Apple's Enterprise Objects Framework (EOF) in much the way that Tapestry is inspired by Apple's WebObjects.

which java where? (2)

tunesmith (136392) | more than 11 years ago | (#4990545)

Here's what I don't understand - what jakarta technologies are mutually exclusive with each other? I did apache jserv development for a couple of years and I want to update by using java for a large scale personal project. My brain is tumbling around several options:
1) struts
2) tomcat/jetty
3) EJB (jboss/resin)
4) enhydra

So, what can be used with what? Can #1-#3 be all used together? I mostly just want to gain wide experience to help the old resume.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?