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.

www.struts.ru

Cool - there's a new site for all the Struts documentation in Russian. I actually got a degree in Russian, and I dig Struts, so of course - this interests me. Beautiful country, awesome culture and a very rich history. Too bad I gave up Russian after graduating to learn all this computer stuff instead. Now I can barely understand a full sentence - and I was pretty close to fluent my senior year. One question I have for non-English programmers - do you write Java/JavaScript/CSS/HTML in your native language or in English? I've always wondered...

Posted in Java at Feb 11 2003, 12:50:34 PM MST 2 Comments

Whither ActionMappings

Ted Husted made a post last Friday to the struts-user mailing list. It looks like a good post for rookie struts users. I haven't read it, but hopefully by bookmarking it here, I'll read it soon.

Haven't quite decided where to use this, and it didn't seem like the best time to squeeze something new into the docs =:0), so I thought I'd post it here for now, in case it were of interest to some.

WHITHER ACTION MAPPINGS?

We write applications to do things for people. We might say, for example, that we want the appication to create a mail-merge job for us. Some developers call these top-level tasks "client stories". In practice, to do a big job like this, an application will need to take several smaller steps. We'll need to obtain the information from the user about which mail-merge job to create. We'll need to find the items to merge. We'll need to put the items together with a template, and we'll need to present the result back to the user. Some developers call these smaller tasks "use cases". To complete a client story, we usually chain several use cases together. A chain of use cases is sometimes called a workflow.

Before doing any thing for us, most applications wait to be asked. When we ask the application to do something, we usually need to provide a variety of details. If we ask the application to store a name and address, we need to provide the name and address to go along with the request. [read more...]

Posted in Java at Feb 11 2003, 07:43:45 AM MST Add a Comment

RE: Tiles 101

Patrick Peak has a weblog that was just started last Wednesday. He wrote a great post today on Tiles that I hope to send to the struts-user mailing list (as soon as I get his permission). Unless someone else has already done it, of course. This is definitely a blog to watch and enjoy.

Posted in Java at Feb 10 2003, 10:05:32 PM MST Add a Comment

Java.blogs and Roller in Java Developer's Journal

I received the February issue of Java Developer's Journal today. I thought it pretty cool that java.blogs, Roller and MiniBlog were all mentioned. I barely skimmed the thing, so it's possible that there are more nuggets like this hidden in its pages. Maybe I'll find out tomorrow - Abbie wants me to read her a story tonight.

I received the reviews/comments back from Wrox today on my Security and Struts chapter. I briefly read the e-mails and gasped at the deadline for editing/returning (next Monday). Overall, the e-mails were encouraging and didn't seem to indicate a lot of change, just more code samples and a more consistent flow. Knowing my luck, there's all kinds of work hidden in the marked-up Word docs. Getting these chapters edited and returned could take a while since it gives me an excuse to dive back into struts-resume and add some more features. Maybe that's why they give the short deadline.

One interesting point that was mentioned is that the Struts chapter was so packed full of tools (i.e. XDoclet, Struts, Validator, Ant, Hibernate, Tiles) that they're thinking of renaming it to be something like "Leveraging Struts, Tiles, and other Tools." Sounds cool to me. In my current project, it seems that Struts only plays a small role in the whole webapp, but after teaching it to a co-worker over the last week - I guess it plays a larger role than I thought. The combination of all these tools and learning them can be a bit overwhelming - I guess I had an advantage in learning since I wrote about them and also did a sample app. I tell you what - "doing it" is certainly the best way to learn. Now hopefully I can come up with a better way to explain how to do it. The book is (to my knowledge) still scheduled to be released in March.

Posted in Java at Feb 10 2003, 08:56:31 PM MST 4 Comments

Deploying to Tomcat using Ant

If you're using Tomcat 4.1.x, did you know you can deploy using an Ant task that ships with Tomcat. You'll need to add $CATALINA_HOME/server/lib/catalina-ant.jar to your classpath, but then you can configure your ant task as follows:

<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>

<deploy url="${manager.url}"
         username="${manager.username}"
         password="${manager.password}"
         path="/${name}"
         war="file:/${dist.dir}/${name}.war" />

I haven't tried it, but it looks cool. Right now I use a simple copy task that works pretty well for me, so no need to change at this point.

<target name="deploy" depends="package-web" if="tomcat.home"
    description="unwar into the servlet container's deployment directory">
          
    <unwar src="${webapp.dist}/${webapp.war}" 
        dest="${tomcat.home}/webapps/${webapp.name}"/>
    
</target>

If you know of any advantages to using Tomcat's deploy task, or you'd like to share your experience using it - please post a comment.

Posted in Java at Feb 07 2003, 06:58:04 AM MST 12 Comments

Workflow Redux

Thanks to all who commented on my request for Java-based workflow engines. I especially liked Anthony's comment, and his list of possible frameworks.

There are several open source options: Only Open Business Engine and Open For Business' workflow component currently follow any sort of standards for workflow. All of the other engines currently have their own workflow definition language.

This leads me to believe that if we are going to use a framwork, we should probably use Open Business Engine or Open for Business' workflow component - simply because I like standards. The question is - how easy are these to implement in a webapp? Any examples? I haven't researched either tool at all, just hoping someone else has.

Posted in Java at Feb 05 2003, 09:49:42 AM MST 6 Comments

[code sample] Using RowSetDynaClass from BeanUtils

On the struts-user list, they're discussing O/R Mapping tools. There seems to be lots of support for OJB and Torque, and I seem to be the only one that piped up for Hibernate. Meanwhile, Craig McClanahan (lead Struts Developer) sent an interesting code sample of using the new RowSetDynaClass to create a collection of DynaBeans from a ResultSet.

Posted in Java at Feb 05 2003, 08:31:02 AM MST Add a Comment

Hibernate Doco Goodies

The Hibernate Developers have added some new documentation to their site. If you've worked with Hibernate at all, or you're hoping to, these are a must read. I still haven't figured out the parent child stuff with composite-ids, and I'm hoping these two links will help show me the light. I'll make sure and put an example into struts-resume if/when I figure it out. To quote:

Everyone should read these newly added pages: Parent / Child Relationship and Understanding Collection Performance.

Thanks to whomever contributed this documentation. FYI, I sent a e-mail to the xdoclet-devel mailing list re: Hibernate 2.0 DTD support, but haven't heard anything yet. I'd probably have better luck if I just contributed a patch. This week looks like a bad week for open source moonlighting - I've got a 4 days to get 40 hours in, and my part-time client wants me to pump out a new feature before I head to Steamboat for the weekend. Life is good as a person/father, but poor right now as an OSS Developer. I feel like a slacker, but I'm happy so that's good - it's all about priorities right?! ;-)

Posted in Java at Feb 03 2003, 10:10:00 PM MST Add a Comment

[HTML] Fieldset and Legend

I was reminded today of the <fieldset> and <legend> tags in HTML (BTW, they also work in XHTML). Basically, they are used to draw and label a box around input elements. Here's an example:

<form action="">
<div>
    <fieldset>
        <legend>Name Information</legend>
        <label for="firstName">First Name:</label>
        <input type="text" name="firstName" id="firstName" value="" /><br />
        <label for="lastName">Last Name:</label>
        <input type="text" name="lastName" id="lastName" value="" /><br />
    </fieldset>
    
    <fieldset>
        <legend>Address Information</legend>
        <label for="address">Address:</label>
        <input type="text" name="address" id="address" value="" /><br />
        <label for="city">City:</label>
        <input type="text" name="city" id="city" value="" /><br />
    </fieldset>
</div>
</form>

I added a little CSS for the fieldset and legend tags, and you end up with this:

Name Information

Address Information

Pretty cool eh? The labels end up in the text boxes (on some browsers) courtesy of the the label.js script.

Posted in The Web at Jan 31 2003, 11:47:45 AM MST 2 Comments

[SOLVED] Connection Timeout using Oracle with Tomcat

I finally solved the problem I was having where the DBCP Connection Pool in Tomcat kept getting closed. At first, I thought it was happening every 24 hours. After we configured connection logging in Oracle, we discovered it was happening every 2 hours. After posting numerous (likely annoying) messages to tomcat-user and struts-user (with no resolution), I looked up my local Oracle user-group mailing list and fired off a message.

The first (and only) response solved my problem. It said I should check and see if there is a connection timeout on the firewall. Sure 'nuff, 90 minutes. So I wrote a DBPingServlet, coupled with an Ant task to make an HTTP Request to get the servlet, and scheduled it as a cron job. Whalla - the problem is fixed! Thank God - it was annoying to restart Tomcat every 2 hours! Of course, if folks where actually using our application - this would've never been an issue... ;-)

Posted in Java at Jan 30 2003, 03:17:35 PM MST 1 Comment