Hi,

As previously discussed, I've prepared a patch including:
* splitting the Request interface in two, with a new WebRequest interface.
* dispatch, include, setContentType moved into WebRequest.
* getHeader split into two maps, one immutable as documented, the other write-only for response headers.
* getRequestObjects removed entirely.

Not including:
* isResponseCommitted stays in the Request interface as discussed.
* getOutputStream stays in the Request interface, I've found a use for it after all (I'm rendering PDF and PNG). * the implementations of forward and include are still in ServletRequest/PortletRequest. I still want to think about it (specifically I find the RequestDispatcher concept similar to DispatchRenderer, and perhaps the best solution should involve servlet/portlet specific DispatchRenderers, rather than ApplicationContext).

Also there are a couple of additional changes I'd like to make:
* After implementing and using a number of renderers, I find the method "isRenderable" so useful it should be mandatory. Besides, it's really easy to implement. I'd like to merge TypeDetectingRenderer into Renderer. * I'd like to add a method "checkNotModified" to the Request interface. It would take an timestamp as a parameter, repesenting the actual last modification time of the model. For servlet/portlet, it would handle the HTTP headers "Last-Modified" and "If-Modified-Since" (as well as return code 304) accordingly. The method would returns "true" if the actual rendering is not needed, allowing the controller to skip calling the renderer.

What do you think?

Nick.

Reply via email to