Matt RaibleMatt Raible is a Web Developer and Java Champion. 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 "java". 1,588 entries found.

You can also try this same search on Google.

A little EL Lovin' for the DisplayTag

Tim McCune submitted a patch for the Display Tag Library to add Expression Language support. I committed it today, along with a few other enhancements. You can read more on the displaytag-devel mailing list. Tim's patch was a nice clean approach to adding EL support. He just subclassed the existing tags and then evaluated the expressions. All I did to integrate was to create an "el" package under "tags" and added an additional .tld file. So there's really nothing that's taken away from the original tag library, and if you want EL support, you simply need to use the "*-el.tld" in your web.xml or change your URI to "http://jakarta.apache.org/taglibs/display-el". Of course, you'll need to include JSTL's JARs (standard.jar and jstl.jar) in your WEB-INF/lib to make this work. This patch included the ability to specify a titleKey attribute - a much asked-for feature.

I like Tim's approach so much, I might have to use it for Struts Menu. It's a slick way of supporting JSP 1.1 containers, and adding optional EL support for JSP 1.2 containers. I haven't had any feedback from the dev team, but hopefully this will make it into the next release.

Posted in Java at Jan 02 2004, 10:52:46 PM MST 10 Comments

Send a Fax from Java?

I'm looking for a (hopefully free) way to send a Fax from a Java program. I think the easiest way would be to send an e-mail to some sort of service that processes it and faxes it the recipient. Any suggestions?

Posted in Java at Dec 31 2003, 11:37:12 AM MST 7 Comments

Jalopy source code formatter no longer free

I love the Jalopy Source Code Formatter. I hope it continues to be developed on SF (though it hasn't had a release in over a year). My issue? It doesn't work on Eclipse 3.0 Mx on OS X. Why am I worried development will stop? Because the original author has a non-free version (at www.triemax.com).

I can't blame the guy - developing Open Source projects is fun, supporting them is a pain. You get rewards for developing: personal milestones, discovery, knowledge enhancement. For supporting, you get to use your precious non-paid hours to try to disseminate your knowledge. This can also be rewarding, it's just not as immediate, leading to the frustration and pain of support. Good documentation reduces support, but that's a pain too.

We have test-first methodologies, will we ever get to document-first? Write the help files, then write the tests, and then the actual code. I'm willing to bet you'd get even higher quality software going this route.

Posted in Java at Dec 31 2003, 08:49:54 AM MST 4 Comments

Useless Tag Library?

Inspired by this post, I wrote a tag library to expose the fields of my Contants.java class to my JSPs. It allows a user to specify a single variable using:

<appfuse:constants var="USER_KEY"/>

Or all variables:

<appfuse:constants/>

By default, it exposes the values from the Contants class imported into the tag library, but also allows a className variable to specify a different class. The main reason I wrote this was to prove it was possible. The second reason was to get around importing my Contants class (and using <%=Contants.VARNAME%>).

Interested? Read More ...

Posted in Java at Dec 31 2003, 08:25:57 AM MST 1 Comment

Missed that one - XDoclet 1.2 Released

I must've been asleep at the wheel the week before Christmas - XDoclet 1.2 Final got released (already blogged here) and I didn't notice.

I integrated OSCache's Filter into my project today and needed to order the <filter-mapping>s in my project so cacheFilter comes first. I stumbed upon the order attribute, but it appears to be XDoclet2-only feature. XDoclet 1.2 just seems to ignore it. Oh well, I guess I'll just resort to putting all my filter-mappings in an XDoclet fragment (metadata/web/filter-mappings.xml) like Roller does.

On another note, it was easy to integrate oscache since Hibernate 2.1.x ships with oscache.jar (I wonder which version it is?). If you're using AppFuse 1.2, it's in there and I encourage you to look into using it. I got inspired after reading Dave's Improving Web Application Performance and Scalability chapter in Pro JSP. I finished reading it earlier this week, and have found that it's a great reference for JSTL (and probably JSP 2.0 when I start using it).

Posted in Java at Dec 30 2003, 12:43:46 PM MST Add a Comment

WebSphere version 6.0 - when's will it release?

Today I discovered that WebSphere is one of the first appservers to support J2EE 1.4. Too bad it's a developer release and not a real release. At my current project, we've been developing on Tomcat 4.1.29 (and MySQL) because it's the only platform I've tested AppFuse on. We plan to migrate to WebSphere and DB2 in the coming months. They currently have a license for WebSphere 4.x, which I heard sucks - especially (IMO) because it only supports Servlets 2.2 and JSP 1.1. Luckily, the app we're deploying to production will be the first Java-based webapp, so we will hopefully be able to use WebSphere 5.1.

I just wish 6.0 was out as a real release, then we could start using JSP 2.0 and leave all those damn <c:out value="..."/>'s behind.

Posted in Java at Dec 29 2003, 11:15:14 PM MST 4 Comments

Back in Denver

We arrived back in Denver last night after a nice winter-weather week at the cabin. It's nice to be home and sleep in our own bed. Julie agrees and would add that it's nice to have indoor plumbing again. I hate the fact that I have all this e-mail to plow through and respond to. I like the fact that I'm super motivated to learn new stuff. So motivated that I ordered a few books from Amazon. I hope I can suppress my desire to play on the computer (i.e. blogging, open source) and just learn for the next month or so. On my agenda: Spring, WebWork and a Java 1.4 Programmer Certification. 1 month, 2000 pages - if I can restrain my internet addiction, it should be a breeze.

In other news, I'm pumped to see that IDEA is available for $249. My question is - does that give me a license for both a Windows and OS X install?

Posted in Java at Dec 27 2003, 01:49:15 PM MST 7 Comments

AppFuse 1.2 Released!

This is primarily a bug fix release. Here are the details from the release notes:

  • Backed out Http Post for Remember Me. It was not redirecting user to the page they originally requested. Using reponse.sendRedirect does send the user to the proper location. Turned on password encryption (SHA) to protect any passwords that end up in log files. Turned off encryption in Tomcat.
  • Changed configuration parameters in servlet context to be in a hashmap.
  • Improvements to StrutsGen tool to generate list screen as well and to fill in more missing elements.
  • Changed to close Hibernate session when object not found in BaseDAOHibernate.
  • Fixed bug in UserAction.save: when creating a new user, role defaults to "tomcat" regardless of what the user chooses.
  • Dependent packages upgraded:
    • Hibernate 2.1.1
    • Struts Menu 2.1
    • WebTest Build 379

Download (~11.9 MB for src, ~4.3 MB for bin) or View Release Notes.

For more information on AppFuse, check out the AppFuse Wiki Page or FAQ.

Posted in Java at Dec 21 2003, 08:07:27 AM MST

Struts Menu 2.1 Released!

This release is primarily a bug-fixing release, but I also added a couple of enhancements. The first is the variable substitution now uses JSTL, which means two things.

  • You must use a JSP 1.2 container and include the standard tag library in your project for this to work.
  • You can now use "dot" notation in your variables. For example, ${user.name} will now work.

Other enhancements include added support for standalone menus in the Explandable List Menu (no items, just a <Menu>) and highlighting of the last menu clicked.

List of Changes (from http://struts-menu.sourceforge.net/changes-report.html):

  • Changed dynamic variable feature to use JSTL's ExpressionEvaluator. To substitute request parameters, you must use ${param.paramName}, rather than just ${paramName}.
  • Fixed UseMenuDisplayerTag to allow config in menu-config.xml to override the default (as documented).
  • Fixed DisplayMenuTag to continue rendering menu items when Action or Forward lookups fail.
  • Added support for highlighting the last menu selected in the Expandable Menu.
  • Added support for standalone links/menus (no children) to Expandable Menu.
  • Added struts-menu.tld to the binary distribution.

A complete CVS changelog can be found at: http://struts-menu.sourceforge.net/changelog-report.html.

Demo: http://raibledesigns.com/struts-menu
Download: http://tinyurl.com/2aq6k

I realize the JSTL stuff could backfire if users are stuck on an old container. Hopefully, you can simply continue using 2.0 if that's your situation.

Posted in Java at Dec 20 2003, 08:34:56 AM MST 1 Comment

JSF 1.0 - Proposed Final Draft Spec and Beta Reference Implementation

From Craig McClanahan on the struts-dev mailing list:

I'm pleased to announce that the Proposed Final Draft version of the JavaServer Faces 1.0 Specification, and a corresponding Beta release of the Reference Implementation, is now available at:

http://java.sun.com/j2ee/javaserverfaces/download.html

Please send any feedback and comments strictly about JavaServer Faces to [email protected].

I'm also finishing up an update to the Struts-Faces Integration Library, and will be making it available (via nightly builds) very soon. Feel free to ask any questions about how to use Struts and JavaServer Faces here on the STRUTS-USER list.

Sweet! It's almost time to try JSF in a webapp. I'd love to offer a web layer for AppFuse in JSF. But then again, I'd like to offer WW2 and Tapestry options too. I just need to figure out how to give the developer that option when building. The main problem is it'd probably be a pain in the ass to maintain all 4 implementations. But then again, that's what unit tests are for!

In other news, a nice patch has been proposed for the DisplayTag that would give it JSTL's EL support.

Posted in Java at Dec 20 2003, 05:40:02 AM MST 1 Comment