Class FilteringHeaderResponse
- java.lang.Object
-
- org.apache.wicket.markup.html.DecoratingHeaderResponse
-
- org.apache.wicket.markup.head.filter.FilteringHeaderResponse
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,IHeaderResponse
- Direct Known Subclasses:
JavaScriptFilteredIntoFooterHeaderResponse
public class FilteringHeaderResponse extends DecoratingHeaderResponse
This header response allows you to separate things that are added to the IHeaderResponse into different buckets. Then, you can render those different buckets in separate areas of the page based on your filter logic. A typical use case for this header response is to move the loading of JavaScript files (and inline script tags) to the footer of the page.- Author:
- Jeremy Thomerson, Emond Papegaaij
- See Also:
HeaderResponseContainer,CssAcceptingHeaderResponseFilter,JavaScriptAcceptingHeaderResponseFilter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceFilteringHeaderResponse.IHeaderResponseFilterA filter used to bucket your resources, inline scripts, etc, into different responses.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_HEADER_FILTER_NAMEThe default name of the filter that will collect contributions which should be rendered in the page's <head>
-
Constructor Summary
Constructors Constructor Description FilteringHeaderResponse(IHeaderResponse response)Constructor without explicit filters.FilteringHeaderResponse(IHeaderResponse response, java.lang.String headerFilterName, java.lang.Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)Construct.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Mark Header rendering is completed and subsequent usage will be ignored.protected IHeaderResponsedecorate(IHeaderResponse response)Decorate the given response used to get contents.static FilteringHeaderResponseget()java.lang.CharSequencegetContent(java.lang.String filterName)Gets the content that was rendered to this header response and matched the filter with the given name.voidrender(HeaderItem item)Renders the givenHeaderItemto the response if none of the tokens of the item has been rendered before.protected voidrender(HeaderItem item, java.util.List<HeaderItem> filteredItems)protected voidsetFilters(java.lang.Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)-
Methods inherited from class org.apache.wicket.markup.html.DecoratingHeaderResponse
getRealResponse, getResponse, isClosed, markRendered, wasRendered
-
-
-
-
Field Detail
-
DEFAULT_HEADER_FILTER_NAME
public static final java.lang.String DEFAULT_HEADER_FILTER_NAME
The default name of the filter that will collect contributions which should be rendered in the page's <head>- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FilteringHeaderResponse
public FilteringHeaderResponse(IHeaderResponse response)
Constructor without explicit filters. Generates filters automatically for any FilteredHeaderItem. Any other contribution is rendered in the page's <head>- Parameters:
response- the wrapped IHeaderResponse- See Also:
HeaderResponseContainer
-
FilteringHeaderResponse
public FilteringHeaderResponse(IHeaderResponse response, java.lang.String headerFilterName, java.lang.Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)
Construct.- Parameters:
response- the wrapped IHeaderResponseheaderFilterName- the name that the filter for things that should appear in the head (default Wicket location) usesfilters- the filters to use to bucket things. There will be a bucket created for each filter, by name. There should typically be at least one filter with the same name as your headerFilterName
-
-
Method Detail
-
setFilters
protected void setFilters(java.lang.Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)
-
get
public static FilteringHeaderResponse get()
- Returns:
- the FilteringHeaderResponse being used in this RequestCycle
-
render
public void render(HeaderItem item)
Description copied from interface:IHeaderResponseRenders the givenHeaderItemto the response if none of the tokens of the item has been rendered before.- Specified by:
renderin interfaceIHeaderResponse- Overrides:
renderin classDecoratingHeaderResponse- Parameters:
item- The item to render.
-
close
public void close()
Description copied from interface:IHeaderResponseMark Header rendering is completed and subsequent usage will be ignored. If some kind of buffering is used internally, this action will mark that the contents has to be flushed out.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceIHeaderResponse- Overrides:
closein classDecoratingHeaderResponse
-
getContent
public final java.lang.CharSequence getContent(java.lang.String filterName)
Gets the content that was rendered to this header response and matched the filter with the given name.- Parameters:
filterName- the name of the filter to get the bucket for- Returns:
- the content that was accepted by the filter with this name
-
decorate
protected IHeaderResponse decorate(IHeaderResponse response)
Decorate the given response used to get contents.- Parameters:
response- response to decorate- Returns:
- default implementation just returns the response
-
render
protected void render(HeaderItem item, java.util.List<HeaderItem> filteredItems)
-
-