20030919 Friday September 19, 2003

Vanity URLs in Struts I figured out a way to make your Struts' app have URLs like the following:

http://raibledesigns.com/weblog?method=edit
http://raibledesigns.com/weblog.jsp?method=edit
http://raibledesigns.com/weblog.html?method=edit
http://raibledesigns.com/weblog.php?method=edit
http://raibledesigns.com/weblog.asp?method=edit

Might be a nifty little trick to try. Pump out a version of Roller with this feature enabled and you could say you made a .NET version! ;-)

Here's how:

1.  I created a RequestFilter that maps to /*
2.  This filter checks to see if request.getServletPath() matches any of the
action paths in struts-config.xml.  If so, it forwards to the action.
3.  As an added feature, I added a set of allowed extensions to this
filter's init parameters.  So far I have .jsp,.html,.asp,.cfm (using .jsp
ensures no one links to them directly, MVC enforced!) - so marketing can
choose what technology they want to convey ;-)

This seems to work great.  For example, I have an "advancedSearch" action
defined as follows:

    <action path="/advancedSearch"
      type="org.apache.struts.actions.ForwardAction" 
      parameter=".advancedSearch"/>

(ForwardAction will eventually be replaced, if necessary, with a real
action).  This allows all of the following URLs to work:

http://site.com/do/advancedSearch (works with Struts by default)
http://site.com/advancedSearch
http://site.com/advancedSearch.html + all other extensions listed.

More information (including source code) can be found on the struts-user mailing list. Posted in Java at Sep 19 2003, 06:23:24 PM MDT 2 Comments

AppFuse Refactorings I did some refactorings of AppFuse yesterday - inspired by an e-mail I received from Jon. I basically de-coupled my Actions from Hibernate - tossing around a connection object in the constructors of my Managers and DAOs (rather than the method signatures). A little more casting, but no noticeable performance difference. I'll upload the source shortly.

Update: - Source has been released. Posted in Java at Sep 19 2003, 06:06:53 PM MDT

PowerBook Memory from Crucial.com Crucial.com always seems to have the best prices on RAM - and today I found its no different for the PowerBook - for 512MB, it's $150 vs. $300 from Apple. That's Apple for you - trying to make a buck where ever they can - not a bad business practice when you have so many cult-like followers. Posted in Mac OS X at Sep 19 2003, 10:57:40 AM MDT 1 Comment