|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.context.support.ApplicationObjectSupport org.springframework.web.context.support.WebApplicationObjectSupport org.springframework.web.servlet.view.AbstractView org.springframework.web.servlet.view.AbstractUrlBasedView org.springframework.web.servlet.view.InternalResourceView org.springframework.web.servlet.view.JstlView
public class JstlView
Specialization of InternalResourceView
for JSTL pages,
i.e. JSP pages that use the JSP Standard Tag Library.
Exposes JSTL-specific request attributes specifying locale
and resource bundle for JSTL's formatting and message tags,
using Spring's locale and MessageSource
.
Typical usage with InternalResourceViewResolver
would look as follows,
from the perspective of the DispatcherServlet context definition:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="messages"/> </bean>Every view name returned from a handler will be translated to a JSP resource (for example: "myView" -> "/WEB-INF/jsp/myView.jsp"), using this view class to enable explicit JSTL support.
The specified MessageSource loads messages from "messages.properties" etc files in the class path. This will automatically be exposed to views as JSTL localization context, which the JSTL fmt tags (message etc) will use. Consider using Spring's ReloadableResourceBundleMessageSource instead of the standard ResourceBundleMessageSource for more sophistication. Of course, any other Spring components can share the same MessageSource.
This is a separate class mainly to avoid JSTL dependencies in
InternalResourceView
itself. JSTL has not been part of standard
J2EE up until J2EE 1.4, so we can't assume the JSTL API jar to be
available on the class path.
Hint: Set the InternalResourceView.setExposeContextBeansAsAttributes(boolean)
flag to "true"
in order to make all Spring beans in the application context accessible
within JSTL expressions (e.g. in a c:out
value expression).
This will also make all such beans accessible in plain ${...}
expressions in a JSP 2.0 page.
JstlUtils.exposeLocalizationContext(javax.servlet.http.HttpServletRequest, org.springframework.context.MessageSource)
,
InternalResourceViewResolver
,
ResourceBundleMessageSource
,
ReloadableResourceBundleMessageSource
Field Summary |
---|
Fields inherited from class org.springframework.web.servlet.view.AbstractView |
---|
DEFAULT_CONTENT_TYPE |
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport |
---|
logger |
Constructor Summary | |
---|---|
JstlView()
Constructor for use as a bean. |
|
JstlView(String url)
Create a new JstlView with the given URL. |
|
JstlView(String url,
MessageSource messageSource)
Create a new JstlView with the given URL. |
Method Summary | |
---|---|
protected void |
exposeHelpers(HttpServletRequest request)
Exposes a JSTL LocalizationContext for Spring's locale and MessageSource. |
protected void |
initApplicationContext()
Initializes a default MessageSource if none has been specified explicitly. |
Methods inherited from class org.springframework.web.servlet.view.InternalResourceView |
---|
exposeForwardRequestAttributes, getRequestToExpose, prepareForRendering, renderMergedOutputModel, setAlwaysInclude, setExposeContextBeansAsAttributes, useInclude |
Methods inherited from class org.springframework.web.servlet.view.AbstractUrlBasedView |
---|
afterPropertiesSet, getUrl, isUrlRequired, setUrl, toString |
Methods inherited from class org.springframework.web.servlet.view.AbstractView |
---|
addStaticAttribute, createRequestContext, exposeModelAsRequestAttributes, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute |
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport |
---|
getServletContext, getTempDir, getWebApplicationContext, isContextRequired, setServletContext |
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport |
---|
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public JstlView()
AbstractUrlBasedView.setUrl(java.lang.String)
public JstlView(String url)
url
- the URL to forward topublic JstlView(String url, MessageSource messageSource)
url
- the URL to forward tomessageSource
- the MessageSource to expose to JSTL tags
(consider exposing a JSTL-aware MessageSource that is aware of JSTL's
javax.servlet.jsp.jstl.fmt.localizationContext
context-param)JstlUtils.getJstlAwareMessageSource(javax.servlet.ServletContext, org.springframework.context.MessageSource)
Method Detail |
---|
protected void initApplicationContext()
initApplicationContext
in class ApplicationObjectSupport
JstlUtils.getJstlAwareMessageSource(javax.servlet.ServletContext, org.springframework.context.MessageSource)
protected void exposeHelpers(HttpServletRequest request) throws Exception
exposeHelpers
in class InternalResourceView
request
- current HTTP request
Exception
- if there's a fatal error while we're adding attributesJstlUtils.exposeLocalizationContext(javax.servlet.http.HttpServletRequest, org.springframework.context.MessageSource)
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |