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.

[ANNOUNCE] Struts Resume 0.8 Released!

The highlights of this release include rendering a resume with Velocity (demo), a password hint feature, self-registration feature, and a gzip compression filter. See the release notes below for a full list of changes. If you're looking to create a new application based on this architecture, you're best off using AppFuse.

Thanks to Russell Beattie for the Resume's XHTML template and to Mathias Bogaert for the Velocity RTF Templating idea.

Posted in Java at Sep 14 2003, 09:18:52 PM MDT

HowTo: Using XDoclet's StrutsForm and a 41KB j2ee.jar

To generate Struts' ActionForms using XDoclet, you need to have j2ee.jar in your classpath. Did you know you can trim it down to 41 KB and get all the functionality you need? Learn more...

Posted in Java at Sep 09 2003, 04:45:30 PM MDT 2 Comments

[ANNOUNCE] Hibernate 2.1 beta 3 Released

View the Release Notes, or Download. I won't be upgrading struts-resume or appfuse until 2.1 is released. Not much reason for me to upgrade, since I probably won't use any new features in these projects, but what the hell - upgrading is fun (and unit tests make it a breeze).

Update on Sunday: Beta 3b Released. Here's why:

  • removed Hibernate built-in PreparedStatement cache
  • made Hibernate.close() static

Posted in Java at Sep 06 2003, 11:51:29 AM MDT Add a Comment

PHP vs. Java - which is better?

I have a former client that has a customer. This customer asked them - "so when are you migrating from Java to PHP?" So evidently this person has the impression that the next wave of web applications will be written in PHP. My former client has asked me to provide an answer for their customer. If I translate it, I think they mean to ask "what is different between Java and PHP and why should we use Java over PHP." Here are my opinions - please add yours as you see fit. I must admit I don't know a whole lot about PHP, except that it's widely popular among the Linux/Apache/MySQL crowd and that it's similar to ASP in it's lack of a MVC architecture (yes, I know about the PHP MVC project).

  • I think Java is more of an industry standard, whereas PHP seems to be popular among hackers and hobbyists.
  • Java provides better separation of layers - key for testability. PHP has all the code embedded in the page, so you have to run it through a browser to test if database connections work (for instance).
  • Java is more scalable.
  • More folks know Java and it's easier to qualify someone's Java skills. How do you test someone knows PHP? Is there a certification?
  • More for-profit organizations use it.

If you're a Java or a PHP-lover, I'd love to hear your opionions (facts are always better). I'm going to point my client to this post, so keep it clean.

Posted in Java at Aug 22 2003, 03:52:33 PM MDT 98 Comments

Building high-content web applications

I've recently been tasked with rebuilding a JSP-based site using a Struts architecture. One of the issues (that I see) in the current architecture is that there are a number of JSPs with the text for the pages hard-coded in them. After re-writing this app, we plan on deploying it to 25+ customers - and we certainly don't want to have 25 different JSPs (with text) for each customer. I've proposed a database, but that might be a little resource intensive - so I'm wondering how folks have done this in the past (I'm sure it's been done before)?

Options I see are:

  • A Database table with the following columns (page_id, title, content, section_id).
  • Text files that are imported using <c:import url=""/>

What options have you used (feel free to add more) - if you've used the database approach - how do you define the page table? Maybe we should use the Roller way and use Velocity and OSCache.

Posted in Java at Aug 19 2003, 06:30:28 PM MDT 18 Comments

[ANNOUNCE] Struts Menu 1.3 Released!

Maybe I need to pay better attention. I didn't realize that Scott released the next version of Struts Menu 1.3. Feel free to check out my demo and then proceed to download it. I used the Tabbed Menu in my last project and the CoolMenu in the project at Comcast - both have been super easy to use and configure.

Posted in Java at Aug 18 2003, 09:38:32 PM MDT Add a Comment

Loving Java all over again

This past week has been hectic. I'be been pumping out what seemed to be a relatively small and simple application for a client. What was a simple 3-table 3-page application is now 14 tables and even more pages. But it's going awesome. It's the most productive I've ever been on a project - thanks to AppFuse, which is further backed up by the powerful Ant, XDoclet, JUnit, Struts and Hibernate.

The reason I've fell in love with Java all over again is I've re-discovered the power of reflection and inheritance. 8 of the 14 tables are child tables of a main "project table." As I noticed I was doing a lot of copy/paste in my DAOs, Services and Actions - I decided to reflection for all these child tables and now I have 3 methods on my DAOs (get/save/deleteProjectChild). Same goes for my Services and my Actions all share the same delete/edit/save methods in a BaseAction.

The only reason I even have child Actions is for URL beauty and to xdoclet-generate the action-mappings. Backed up by tons of JUnit, StrutsTestCase and WebTest test cases - it's been a breeze to refactor and enhance. I'm in love all over again.

Posted in Java at Aug 16 2003, 11:23:04 AM MDT 1 Comment

New Gig starts Monday

After searching and interviewing for the last few weeks, I finally decided on my next gig this morning. Phew - I'm glad that process is over with.

I've accepted a position with ResortQuest [quote] in Lafayette, CO (about 30 miles north of my house). They run a high traffic (I think) website for booking vacation rentals and own many local property management companies. Currently, it's written in Cold Fusion and I'll be helping them migrate it to a Struts-based architecture. They've already done their Smoky Mountain site in Tennessee, and now there's a big push to get the mountain resort properties done for the ski season.

I'm pretty pumped about the position - there's a team of about 10 and also a Graphics Design group. I've never been on a team with a Graphics Design group - so that should be awesome - no more worrying about look and feel, just coding. The commute might kinda suck, but most traffic is going the other way. Not being able to ride my bike to work will be a bummer, but none of my other opportunities had that either - so I can't fault them for that. One of the biggest perks is that they don't have a BYOL policy, and they've already got the machines in house, so I can hit the ground running.

Because I don't need to bring my own laptop, I will be returning the ZX7 today. Who knows if I'll get a new computer anytime soon - I don't really need one now. My newly installed XP box is humming along just fine, and all I really need is a DVD burner. Does anyone know if it's possible to buy/connect an external DVD burner to a PowerBook? Julie has recently got into iMovie video-editing and we'd like to burn these to DVD w/o buying a whole new computer.

Posted in General at Aug 12 2003, 09:22:59 AM MDT 6 Comments

Tomcat 5.0.7 Alpha

Since java.blogs has already seen an announcement for Tomcat 5.0.7, there's no reason for me to do it as well. But, there is a very cool enhancement added to this release. From the changelog:

~ Allow putting a /META-INF/context.xml inside any WAR file

This allows much easier deployment IMO. Now you only need to deploy/upload one file, instead of the WAR file and a config (context.xml) file. However, this isn't part of the J2EE 1.4 spec, and other appservers have their own means of configuring - so this is not a portable solution. It would be very cool if there was a common way of doing this for Resin, Orion and Tomcat. I don't know how it would work, but maybe something like META-INF/tomcat-config.xml, META-INF/orion-config.xml, etc.

Posted in Java at Aug 11 2003, 09:11:12 AM MDT 6 Comments

Help me architect Struts Resume

I've come up with a few issues for Struts Resume that I need some feedback on. Let's just get right to them. * How should I assign skill groups and skills to a resume? * Resume Templates - should I do something like Roller or simpler? * Can I produce PDF or RTF from a Velocity template? I've [elaborated more|StrutsResumeArchitecture] on my wiki. Please post your feedback via comments or on the wiki.

Update: Thanks to Mathius, I was able to implement a simple XHTML and RTF (Word) version of a simple resume today. I don't think Velocity will be the only option, I think I'm going to have to have an XSL Transformation Servlet as well, and the user will be able to choose Velocity templates or XML/XSL/FO. But that will be in a later version of Struts Resume. For 1.0, I'm going to concentrate on getting a resume updateable and presentable - PDF will be a post-1.0 option. The main reason for this is because I think I can release a 1.0 version before my next gig starts. After I start, it might be quite a while until I can get some time to work on it again.

Posted in Java at Aug 05 2003, 08:02:59 AM MDT 5 Comments