Class CmsJspContentAccessBean
<cms:contentload>
tag.The implementation is optimized for performance and uses lazy initializing of the requested values as much as possible.
- Since:
- 7.0.2
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
Provides Booleans that indicate if a specified locale is available in the XML content, the input is assumed to be a String that represents a Locale.class
Provides Booleans that indicate if a specified path exists in the XML content, the input is assumed to be a String that represents an xpath in the XML content.class
Provides a Map with Booleans that indicate if a specified path exists in the XML content in the selected Locale, the input is assumed to be a String that represents an xpath in the XML content.class
Transformer used for the 'imageDnd' EL attribute which is used to annotate images which can be replaced by drag and drop.class
Provides a Map which lets the user access the list of element names from the selected locale in an XML content, the input is assumed to be a String that represents a Locale.class
Provides a Map which lets the user access the RDFA tags for all values in the selected locale in an XML content, the input is assumed to be a String that represents a Locale.class
Provides a Map which lets the user access sub value Lists from the selected locale in an XML content, the input is assumed to be a String that represents a Locale.class
Provides a Map which lets the user access value Lists from the selected locale in an XML content, the input is assumed to be a String that represents a Locale.class
Provides a Map which lets the user access a value from the selected locale in an XML content, the input is assumed to be a String that represents a Locale.class
Provides a Map which lets the user access the RDFA tag for a value in an XML content, the input is assumed to be a String that represents an xpath in the XML content.class
Provides a Map which lets the user access sub value Lists in an XML content, the input is assumed to be a String that represents an xpath in the XML content.class
Provides a Map which lets the user access value Lists in an XML content, the input is assumed to be a String that represents an xpath in the XML content.class
Provides a Map which lets the user access a value in an XML content, the input is assumed to be a String that represents an xpath in the XML content. -
Field Summary
Modifier and TypeFieldDescriptionprotected static final Map<String,
CmsJspContentAccessValueWrapper> Constant Map that always returns theCmsJspContentAccessValueWrapper.NULL_VALUE_WRAPPER
. -
Constructor Summary
ConstructorDescriptionNo argument constructor, required for a JavaBean.CmsJspContentAccessBean
(CmsObject cms, Locale locale, CmsResource resource) Creates a content access bean based on a Resource.CmsJspContentAccessBean
(CmsObject cms, Locale locale, I_CmsXmlDocument content) Creates a content access bean based on an XML content object.CmsJspContentAccessBean
(CmsObject cms, CmsResource resource) Creates a content access bean based on a Resource, using the current request context locale. -
Method Summary
Modifier and TypeMethodDescriptionprotected static String
createImageDndAttr
(CmsUUID structureId, String imagePath, String locale) Generates the HTML attribute "data-imagednd" that enables the ADE image drag and drop feature.Gets the list of locales for which there are attachments.Gets an attachment bean, trying to automatically find the right locale for the current page.Map<?,
?> Gets a lazy map which maps locales to attachment beans for that locale.Returns the OpenCms user context this bean was initialized with.getFile()
Returns the raw VFS file object the content accessed by this bean was created from.Returns the substituted link to the content file.Returns the site path of the current resource, that is the result ofCmsObject.getSitePath(CmsResource)
with the resource obtained bygetFile()
.Returns a lazy initialized Map that provides Booleans that indicate if a specified Locale is available in the XML content.Returns a lazy initialized Map that provides a Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the selected locale.Returns a lazy initialized Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the current locale.getId()
Returns the structure ID of the current resource, that is the ID of the resource obtained bygetFile()
.Gets the lazy imageDnd map.boolean
Returnstrue
in case the current user is allowed to edit the XML content.getJson()
Gets the JSON for the current locale.Returns the Locale this bean is using for content access, this may be a default fall back Locale.Gets a lazy map from locales (can be provided as strings or java.util.Locale) to the (default) JSON representation of an XML content.Returns a lazy initialized Map that provides a List with all available elements paths (Strings) used in this document in the selected locale.Returns the map of RDFA maps by locale.Returns a lazy initialized Map that provides a Map that provides Lists of direct sub values from the XML content in the selected locale.Returns a lazy initialized Map that provides a Map that provides values from the XML content in the selected locale.Returns a lazy initialized Map that provides a Map that provides Lists of values from the XML content in the selected locale.getNames()
Returns a list with all available elements paths (Strings) used in this document in the current locale.Prints the XPaths of the available content values into an HTML ul list.Returns the raw XML content object that is accessed by this bean.getRdfa()
Returns RDFA by value name map.Reads and returns the categories assigned to the content's VFS resource.Returns the (wrapped) content resource for the content accessed by this bean.Returns a lazy initialized Map that provides Lists of direct sub values of the given value from the XML content in the current locale.Returns the resource type name.getValue()
Returns a lazy initialized Map that provides values from the XML content in the current locale.Returns a lazy initialized Map that provides Lists of values from the XML content in the current locale.getVfs()
Returns an instance of a VFS access bean, initialized with the OpenCms user context this bean was created with.getWrap()
Deprecated.void
init
(CmsObject cms, Locale locale, I_CmsXmlDocument content, CmsResource resource) Initialize this instance.
-
Field Details
-
CONSTANT_NULL_VALUE_WRAPPER_MAP
Constant Map that always returns theCmsJspContentAccessValueWrapper.NULL_VALUE_WRAPPER
.
-
-
Constructor Details
-
CmsJspContentAccessBean
public CmsJspContentAccessBean()No argument constructor, required for a JavaBean.You must call
init(CmsObject, Locale, I_CmsXmlDocument, CmsResource)
and provide the required values when you use this constructor. -
CmsJspContentAccessBean
Creates a content access bean based on a Resource, using the current request context locale.- Parameters:
cms
- the OpenCms context of the current userresource
- the resource to create the content from
-
CmsJspContentAccessBean
Creates a content access bean based on a Resource.- Parameters:
cms
- the OpenCms context of the current userlocale
- the Locale to use when accessing the contentresource
- the resource to create the content from
-
CmsJspContentAccessBean
Creates a content access bean based on an XML content object.- Parameters:
cms
- the OpenCms context of the current userlocale
- the Locale to use when accessing the contentcontent
- the content to access
-
-
Method Details
-
createImageDndAttr
Generates the HTML attribute "data-imagednd" that enables the ADE image drag and drop feature.- Parameters:
structureId
- the structure ID of the XML document to insert the imagelocale
- the locale to generate the image inimagePath
- the XML path to the image source node.- Returns:
- the HTML attribute "data-imagednd" that enables the ADE image drag and drop feature
-
getAttachmentLocales
Gets the list of locales for which there are attachments.- Returns:
- the list of locales for which there are attachments
-
getAttachments
Gets an attachment bean, trying to automatically find the right locale for the current page.- Returns:
- the attachments bean for the current page's locale
- Throws:
CmsException
- if something goes wrong
-
getAttachmentsForLocale
Gets a lazy map which maps locales to attachment beans for that locale.- Returns:
- the lazy map
-
getCmsObject
Returns the OpenCms user context this bean was initialized with.- Returns:
- the OpenCms user context this bean was initialized with
-
getFile
Returns the raw VFS file object the content accessed by this bean was created from.This can be used to access information from the raw file on a JSP.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> Root path of the resource: ${content.file.rootPath} </cms:contentload>
- Returns:
- the raw VFS file object the content accessed by this bean was created from
-
getFileLink
Returns the substituted link to the content file.Use for detail page links.
- Returns:
- the substituted link
-
getFilename
Returns the site path of the current resource, that is the result ofCmsObject.getSitePath(CmsResource)
with the resource obtained bygetFile()
.Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> Site path of the resource: "${content.filename}"; </cms:contentload>
- Returns:
- the site path of the current resource
- See Also:
-
getHasLocale
Returns a lazy initialized Map that provides Booleans that indicate if a specified Locale is available in the XML content.The provided Map key is assumed to be a String that represents a Locale.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:if test="${content.hasLocale['de']}" > The content has a "de" Locale! </c:if> </cms:contentload>
- Returns:
- a lazy initialized Map that provides Booleans that indicate if a specified Locale is available in the XML content
-
getHasLocaleValue
Returns a lazy initialized Map that provides a Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the selected locale.The first provided Map key is assumed to be a String that represents the Locale, the second provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:if test="${content.hasLocaleValue['de']['Title']}" > The content has a "Title" value in the "de" Locale! </c:if> </cms:contentload>
Please note that you can also test if a locale value exists like this:<c:if test="${content.value['de']['Title'].exists}" > ... </c:if>
- Returns:
- a lazy initialized Map that provides a Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the selected locale
- See Also:
-
getHasValue
Returns a lazy initialized Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the current locale.The provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:if test="${content.hasValue['Title']}" > The content has a "Title" value in the current locale! </c:if> </cms:contentload>
Please note that you can also test if a value exists like this:<c:if test="${content.value['Title'].exists}" > ... </c:if>
- Returns:
- a lazy initialized Map that provides Booleans that indicate if a value (xpath) is available in the XML content in the current locale
- See Also:
-
getId
Returns the structure ID of the current resource, that is the ID of the resource obtained bygetFile()
.Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> Site path of the resource: "${content.id}"; </cms:contentload>
- Returns:
- the structure ID of the current resource
- See Also:
-
getImageDnd
Gets the lazy imageDnd map.- Returns:
- the lazy imageDnd map
-
getIsEditable
Returnstrue
in case the current user is allowed to edit the XML content.If the check is performed from the online project, the user context is internally switched to an offline project. So this may return
true
even if the user is currently in the online project. "Allowed to edit" here requires "read" and "write" permission for the VFS resource the XML content was created from. It also requires that the VFS resource is not locked by another user. Moreover, the user must be able to access at least one "offline" project.Intended for quick checks to for example show / hide edit buttons for user generated content.
- Returns:
true
in case the current user is allowed to edit the XML content
-
getJson
Gets the JSON for the current locale.- Returns:
- the JSON for the current locale
-
getLocale
Returns the Locale this bean is using for content access, this may be a default fall back Locale.- Returns:
- the Locale this bean is using for content access, this may be a default fall back Locale
-
getLocaleJson
Gets a lazy map from locales (can be provided as strings or java.util.Locale) to the (default) JSON representation of an XML content.- Returns:
- the lazy map from locales to JSON strings
-
getLocaleNames
Returns a lazy initialized Map that provides a List with all available elements paths (Strings) used in this document in the selected locale.The provided Map key is assumed to be a String that represents the Locale.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach items="${content.localeNames['de']}" var="elem"> <c:out value="${elem}" /> </c:forEach> </cms:contentload>
- Returns:
- a lazy initialized Map that provides a Map that provides values from the XML content in the selected locale
- See Also:
-
getLocaleRdfa
Returns the map of RDFA maps by locale.- Returns:
- the map of RDFA maps by locale
-
getLocaleSubValueList
Returns a lazy initialized Map that provides a Map that provides Lists of direct sub values from the XML content in the selected locale.The first provided Map key is assumed to be a String that represents the Locale, the second provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach var="item" items="${content.localeSubValueList['de']['Items']}"> ${item} </c:forEach> </cms:contentload>
- Returns:
- a lazy initialized Map that provides a Map that provides Lists of direct sub values from the XML content in the selected locale
- See Also:
-
getLocaleValue
Returns a lazy initialized Map that provides a Map that provides values from the XML content in the selected locale.The first provided Map key is assumed to be a String that represents the Locale, the second provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> The Title in Locale "de": ${content.localeValue['de']['Title']} </cms:contentload>
- Returns:
- a lazy initialized Map that provides a Map that provides values from the XML content in the selected locale
- See Also:
-
getLocaleValueList
Returns a lazy initialized Map that provides a Map that provides Lists of values from the XML content in the selected locale.The first provided Map key is assumed to be a String that represents the Locale, the second provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach var="teaser" items="${content.localeValueList['de']['Teaser']}"> ${teaser} </c:forEach> </cms:contentload>
- Returns:
- a lazy initialized Map that provides a Map that provides Lists of values from the XML content in the selected locale
- See Also:
-
getNames
Returns a list with all available elements paths (Strings) used in this document in the current locale.Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach items="${content.names}" var="elem"> <c:out value="${elem}" /> </c:forEach> </cms:contentload>
- Returns:
- a list with all available elements paths (Strings) used in this document in the current locale
- See Also:
-
getPrintStructure
Prints the XPaths of the available content values into an HTML ul list.- Returns:
- the HTML list of XPaths
-
getRawContent
Returns the raw XML content object that is accessed by this bean.- Returns:
- the raw XML content object that is accessed by this bean
-
getRdfa
Returns RDFA by value name map.- Returns:
- RDFA by value name map
-
getReadCategories
Reads and returns the categories assigned to the content's VFS resource.- Returns:
- the categories assigned to the content's VFS resource.
-
getResource
Returns the (wrapped) content resource for the content accessed by this bean.- Returns:
- the (wrapped) content resource for the content accessed by this bean
-
getSubValueList
Returns a lazy initialized Map that provides Lists of direct sub values of the given value from the XML content in the current locale.The provided Map key is assumed to be a String that represents the xpath to the value. Use this method in case you want to iterate over a List of sub values from the XML content.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach var="teaser" items="${content.subValueList['Items']}"> ${item} </c:forEach> </cms:contentload>
- Returns:
- a lazy initialized Map that provides Lists of values from the XML content in the current locale
- See Also:
-
getTypeName
Returns the resource type name.- Returns:
- the resource type name
-
getValue
Returns a lazy initialized Map that provides values from the XML content in the current locale.The provided Map key is assumed to be a String that represents the xpath to the value.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> The Title: ${content.value['Title']} </cms:contentload>
- Returns:
- a lazy initialized Map that provides values from the XML content in the current locale
- See Also:
-
getValueList
Returns a lazy initialized Map that provides Lists of values from the XML content in the current locale.The provided Map key is assumed to be a String that represents the xpath to the value. Use this method in case you want to iterate over a List of values form the XML content.
Usage example on a JSP with the JSTL:
<cms:contentload ... > <cms:contentaccess var="content" /> <c:forEach var="teaser" items="${content.valueList['Teaser']}"> ${teaser} </c:forEach> </cms:contentload>
- Returns:
- a lazy initialized Map that provides Lists of values from the XML content in the current locale
- See Also:
-
getVfs
Returns an instance of a VFS access bean, initialized with the OpenCms user context this bean was created with.- Returns:
- an instance of a VFS access bean, initialized with the OpenCms user context this bean was created with
-
getWrap
Deprecated.usegetResource()
insteadReturns the (wrapped) content resource for the content accessed by this bean.- Returns:
- the (wrapped) content resource for the content accessed by this bean
-
init
Initialize this instance.- Parameters:
cms
- the OpenCms context of the current userlocale
- the Locale to use when accessing the contentcontent
- the XML content to accessresource
- the resource to create the content from
-
getResource()
instead