public interface View
This class and the MVC approach associated with it is discussed in Chapter 12 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).
View implementations may differ widely. An obvious implementation would be JSP-based. Other implementations might be XSLT-based, or use an HTML generation library. This interface is designed to avoid restricting the range of possible implementations.
Views should be beans. They are likely to be instantiated as beans by a ViewResolver. As this interface is stateless, view implementations should be thread-safe.
AbstractView
,
InternalResourceView
Modifier and Type | Field and Description |
---|---|
static String |
PATH_VARIABLES
Name of the
HttpServletRequest attribute that contains a Map with path variables. |
static String |
RESPONSE_STATUS_ATTRIBUTE
Name of the
HttpServletRequest attribute that contains the response status code. |
static String |
SELECTED_CONTENT_TYPE
The
MediaType selected during content negotiation,
which may be more specific than the one the View is configured with. |
Modifier and Type | Method and Description |
---|---|
String |
getContentType()
Return the content type of the view, if predetermined.
|
void |
render(Map<String,?> model,
HttpServletRequest request,
HttpServletResponse response)
Render the view given the specified model.
|
static final String RESPONSE_STATUS_ATTRIBUTE
HttpServletRequest
attribute that contains the response status code.
Note: This attribute is not required to be supported by all View implementations.
static final String PATH_VARIABLES
HttpServletRequest
attribute that contains a Map with path variables.
The map consists of String-based URI template variable names as keys and their corresponding
Object-based values -- extracted from segments of the URL and type converted.
Note: This attribute is not required to be supported by all View implementations.
String getContentType()
Can be used to check the view's content type upfront, i.e. before an actual rendering attempt.
null
if not predeterminedvoid render(Map<String,?> model, HttpServletRequest request, HttpServletResponse response) throws Exception
The first step will be preparing the request: In the JSP case, this would mean setting model objects as request attributes. The second step will be the actual rendering of the view, for example including the JSP via a RequestDispatcher.
model
- Map with name Strings as keys and corresponding model
objects as values (Map can also be null
in case of empty model)request
- current HTTP requestresponse
- HTTP response we are buildingException
- if rendering failed