Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "struts". 749 entries found.

You can also try this same search on Google.

StrutsCX: Updated

I received the following e-mail from Berny, the author of StrutsCX.

Thanks Matt for hosting a StrutsCX sample. As the author of StrutsCX I do have some news for you: There is a new release with support of FOP/PDF, client side XSLT, XSL pipelineing and included Struts Validator. Check out http://it.cappuccinonet.com/strutscx.

Would be great if you could update on the latest version. Would you mind if I put a link on the StrutsCX Homepage to the Demo?

Thanks,
Berny

I actually upgraded my demo site when I received his e-mail on Saturday, but didn't get around to returning his e-mail until today. I dig the Validator stuff - only seems to be server-side though.

Posted in Java at Feb 17 2003, 08:26:00 PM MST Add a Comment

Comparative analysis of Struts vs. WebWork vs. Barracuda vs. Maverick?

Does anyone know of a comparative analysis of Struts, WebWork, Barracuda and Maverick. I'd love to find a paragraph or two that I could quote in my chapter on Struts. I'm not at all attempting to say that Struts is better than any of these - I just want to give a fair shake to each one. The reason I'm writing this chapter on Struts is because that's what I'm most familiar with.

Thanks,

Matt

Posted in Java at Feb 17 2003, 09:34:44 AM MST 4 Comments

Struts 1.1 RC1 To Be Released Soon

The Struts Committers are voting on a release plan for a 1.1 Release Candidate. Lots of +1's so far, so I'd expect it in the next couple of days. The release plan says tomorrow is the code freeze date.

Posted in Java at Feb 17 2003, 09:08:26 AM MST Add a Comment

Struts Training (Darn Cheap too)

If you're looking to learn more about advanced features of Struts, you might want to checkout BaseBeans's upcoming training. I received the following e-mail in my Inbox this evening.

Announce: "*Best Practices in Struts -  Web Training*" by Cekvenich, 
Husted, and Turner and a presentation by Momjian on PostgreSQL. (each a 
published author)

Struts 1.1 might be released in March, so every Saturday at 10:30 AM 
Easter, watch and hear presentation via WebEx.com.

Meeting #	Date	 Title
616291003	1-Mar	 MVC Intermediate Setup
614301419	8-Mar	 MVC View for CMS/Contact
611367121	15-Mar 	 MVC – Ted Advanced + DAO Lab
611903740	22-Mar	 MVC – Bruce pgSQL + Multi Row Lab
611213868	29-Mar	 MVC - Turner + Options/Nested
(once you connect via PC, telecom phone is 1-408-964-1050)

This presentation is almost FREE (other than the cost of WebEx), the 
sooner you register, the cheaper it is.

A week of training by others could be $2400! Plus travel costs. Plus 
they did not get voted best, baseBeans.com did!

Register and pay at: http://www.basebeans.com/do/classReservation
Cost of all 5 sessions + labs (8 hours for each session) is .... $155 if 
you pre-register, or $275 if you late register and $475 if you register 
in March.

Labs (on your own time, hours each) include: Multi Row Updates, 
Validation, Tiles, Navigation, EL, Nested, Options, CRUD, etc. full 
agenda was published.

Each lab is at least 8 hours and required, if you do not do the labs, 
the next presentation will not make sense, no pretenders here. No money 
back for this, other baseBeans.com presentations are money back!

I'd sign up, but Saturdays are reserved for Julie and Abbie.

Posted in Java at Feb 16 2003, 07:34:22 PM MST Add a Comment

Wrox Chapters: Round II

I, like Dave, have been working my butt off all weekend to try and get my Wrox Chapters edited and returned by tomorrow. Can you imagine my jealousy when I say his post this morning saying he was done?! That bastard!! ;-)

As you can see, I've returned to mismanaging my time (i.e. blogging). I've finished the 2nd drafts of my Wrox Professional JSP chapters. The reviewers seemed to like my 1st drafts, especially the Performance and Debugging chapter, but that did not stop them from making hundreds of comments and thus burning two perfectly good weekends.

Dave - you had two weekends!! I'm even more jealous now! I only got one - think it had something to do with me turning my first chapter in a week late, and the second one in 3 weeks late!? Probably...

Oh well, I just finished my security chapter, and while it did eat up my entire weekend - I greatly enhanced it to be a much better chapter. Just as an indicator - it went from 21 pages to 40! Now it has a lot more examples and includes how-to's for configuring Tomcat's Realms (MemoryRealm, JDBCRealm, JNDIRealm and JAASRealm) and for implementing "Remember Me" functionality. The realm stuff was pretty cool - I setup OpenLDAP and was able to get that working with a JNDIRealm and also hooked a JAASRealm into the workgroup that my Windows machines belong to. As for the Remember Me feature, I figured out that I didn't need half the code I was using - which is always a good thing - making it much simpler to implement and understand. Tomorrow I'm taking the day off in hopes of finishing the Struts chapter. Wish me luck!

Posted in Java at Feb 16 2003, 07:21:25 PM MST 2 Comments

RE: Which servers support HTTP Digest Authentication

I did a bit of digging today to find out which J2EE servers support HTTP Digest Authentication. Here's what I found:

  • Tomcat: Yes. How do I know? My own experience, and this documentation. Why can't they just state this in Tomcat's documentation?
  • JBoss: Yes. How do I know? An earlier comment. Since JBoss can be configured with Tomcat and Jetty, this question is only applicable to those servers. I couldn't find any Jetty documentation indicating support, but I trust the users. Finding any information on JBoss is a real pain in the ass, I hate PDFs.
  • Resin: Yes. This documentation says so. This documentation and finding the answer was the easiest yet. Of course, the manual testing on Tomcat was pretty easy too.
  • Orion: No. How do I know? An e-mail I received from Nicholas Clarke, who tested it on Orion 1.5.2. Here's the message he received: Auto-deploying file:/usr/java/orion/wwwroot/antiaction/ (Assembly had been updated)... Error initializing site Alternative: Digest-Auth not supported Orion/1.5.2 initialized. I couldn't find anything on the Orion site indicating support for the different authentication types. Their documentation on web.xml seems to be a regurgitation of the DTD.
  • WebLogic: No. They've always had excellent documentation, making this a breeze to find.
  • WebSphere: No. How do I know? the 5.0 docs say so. BTW, I had to really dig to even find this documentation. Makes me glad I don't currently develop on WebSphere.
  • Sun ONE: No. Easy to find due to great documentation.
  • JRun: Who knows. I gave up searching for this documentation after 10 minutes. BTW, looking through JRun's technical whitepaper I found that "XDoclet has been tightly integrated into JRun 4." Very cool!

That seems like a waste of a good hour for a feature that no one ever uses. Oh well, at least you've been edumacated.

Posted in Java at Feb 15 2003, 12:03:40 PM MST 2 Comments

XDoclet for Hibernate

A nice community-enhancing developer (I don't know who) has posted an XDoclet for Hibernate tutorial on Hibernate's Wiki. Good stuff. Since the XDoclet doco is kinda cryptic, it'd be awesome if someone did this for Struts. Maybe in my spare time. Oh wait, I have none of that - at least not this week.

I think XDoclet and Hibernate work well together when creating a database schema from scratch. However, I've found that Hibernate's Reverse Engineering Tool works much better for me. It generates the .java and .hbm.xml files for me and I'm done. Hook up a DAO and a DAOTest and I'm done! I might look at Middlegen's recently added Hibernate support in my next class-generation cycle. To my knowledge, it creates an XDoclet-enabled .java file that can then generate the .hbm.xml. However, I'm using a lot of composite-id stuff and XDoclet doesn't seem to support that. From the above XDoclet for Hibernate article:

Note that XDoclet will not be able to support the new composite features.

Posted in Java at Feb 13 2003, 05:22:44 AM MST 1 Comment

RE: Client-side Sorting with the DOM

After working the DOM for the past few days, I'm somewhat motivated to make my table row sorting demo support paging. In reality, it doesn't matter which table-sorting code I use, Erik Arvidsson has a nice example too. My logic is that I usually query a database and return all the rows for a particular table anyway, sometimes based on a search. Since I'm retrieving all these rows from the database, why not send them all to the UI. It might take a bit longer for the initial request, but then again, maybe not. I'm sure it's a different story for 10,000 records, but what if I only ever expect to have < 100 rows. Here's how I think I can do it:

1. Retrieve all the rows and put them in a table.
2. Call a JavaScript function on load that sets all <tr>'s (i.e. var rows = table.getElementsByTagName("tr")) with a rowIndex > 20 to rows[i].style.display = "none".
3. When a user clicks on a page number, do the math and set rows[i].style.display="" or rows[i].style.display="none" to show/hide particular rows.

BTW, I've added support in my local copy of the sortTable.js script to do sorting of <input> elements, as well as <select> elements. I can update the demo if anyone needs this functionality. Also, the W3C has a cool utility to check out what level of DOM support your browser has (based on user agent).

NOTE: I tried to manage my time today to be more productive, and succeeded at most things. I woke up at 3:30 this morning and got an hour and a half worth of editing done. I worked 8 1/2 hours at the office, and was home by 3:30. I was planning on working another 1 1/2 on editing, but it was a nice day so Julie, Abbie and I went on a hike at Red Rocks instead. I met a friend at 5:30 for an hour and a half of hoops, and returned home at 7:30. I got on this damn computer at 8:00 to do my evening editing, but instead ended up blogging and reading blogs for the last hour and a half. A month ago, I'd stay up late and still get my editing done. Not now, Abbie is much more fun and editing just doesn't sound interesting at all.

Posted in The Web at Feb 12 2003, 09:16:46 PM MST 1 Comment

RE: Tiles 201 - Using Controllers

Patrick has published another excellent article on Tiles. This one is titled Tiles 201 and is about using Tiles Controllers. Good stuff to know - especially since I've never used a Tiles Controller (I might now!). I really like the clear and concise way that Patrick writes tutorials. I think we, as open source developers, should do more of this to better explain the technologies we use. So next time you're interested in learning something, I encourage you to write a tutorial on it - I'm willing to bet you'll learn and retain a lot more. If you don't understand something or make mistakes, I'm sure there are many Java Bloggers willing to help you get it right.

Patrick mentions that the Tiles Controller is not discusses in any of the existing Struts books. This sounds like an opportunity for me to include it in my chapter. With Patrick's simple and easily-understood example, this shouldn't take too much effort. Thanks Patrick - great stuff! One question I have - I know that these types of posts take a long time to create/edit and correct. Your blog says "sponsored by browsermedia" - does that mean you get paid to blog in a sense? Meaning - are you writing these articles at work?

Posted in Java at Feb 12 2003, 08:51:54 PM MST Add a Comment

Integrating JSP/JSF and XML/XSLT: The Best of Both Worlds

I saw this nugget a few minutes ago on the struts-user mailing list. Maybe I'll even read it... ;-)

For those of you wondering how JSP technologies, including JSP 2.0, JSTL, Struts and the upcoming JavaServer Faces (JSF) 1.0, can work together with XML and XSLT, there is a new article at TheServerSide.com about this subject.

http://www.theserverside.com/resources/article.jsp?l=BestBothWorlds

The article presents the natural evolution of server-side Java programming from basic servlet programming to JSP 2.0 with JSTL and JSF, shows the limitations of the current JSF rendering architecture and how XML technologies can solve them.

The article comes with sample code that shows how to hookup an XSLT transformer with a JSP filter, and includes an experimental XML renderer for JSF.

Posted in Java at Feb 12 2003, 12:40:53 PM MST 1 Comment