OK, looking at Front Man's javadoc, I have a couple of suggestions to make.
The first is something I mentioned in the previous post: your CommandContext is tied to the web environment, as it knows about HttpServletRequest's, etc; therefore so are your Commands, which take a CommandContext. I don't know if anybody would be concerned about it, we are most likely never going to need to port our apps to a non-web platform; and if we do, we'd be happy to reuse service and persistence layer, and just rewrite the MVC. Still, I thought it would be cool to minimize, or avoid, ties to the web at the Command, if only to help with my jUnit tests. My CommandContext, just like yours, has access to scoped variables, and things like request path, etc., but only the HTTP implementation has ties to the web platform. (Actually I need to get this better, but that's the idea.)
A second thing I'd like to suggest, and maybe this is sounds more useful, is to have an overloaded forward() or redirect() that instead of taking a String argument, takes a Command class argument. This is better for refactoring when a class changes name.
I have calls like this:
getContext().setNextActionRedirect(HomeCommand.class);
In the method calls that take a String, I also thought it wasn't necessary to distinguish between a View target or a Command target. The front controller servlet has the means to tell a command string from a view string, and the string itself should also be easily identifiable as a view or command to a developer. These are my 'next action' signatures:
setNextAction(Class) // forward to command
setNextAction(String) // forward to command or view
setNextActionRedirect(Class) // redirect to command
Here's another principle that I'm enforcing, from a best practice: no direct client access to a view, always go through the controller. That's why I don't even have a redirect that takes a String. Also I take views to be by default under WEB-INF, which makes them inaccessible to the client directly.
I hope this feedback is of any use, it's also open to criticism, of course
[ November 08, 2007: Message edited by: greg buela ]