Page History
Wiki Markup |
---|
{rate}
{status:inprogress| |
...
4.5 |
...
}Implementation tracked in [MAGNOLIA-3895@jira]. |
Status |
---|
Intro
...
{status} h3. Intro * A selector is the part between the first selector delimiter and the extension of an URI. I.e. given a URI like {{[http://myserver/mypage~x~foo=bar~.html?param=baz¶m2=qux]}} and the tilde character as the delimiter, the entire selector is _\~x~foo=bar_. A selector can be split in turn into several selectors separated from each other by the same delimiter. h3. |
...
Rationale
...
Rationale * Selectors existed prior to Magnolia 4.5 and they use the _._ (dot) char as a delimiter. As Magnolia 4.5 introduces the possibility to have the dot _._ character in the node names (as by JCR specification [see chapter 3 paragraph 2.2 of JCR 2.0 specs|http://www.day.com/specs/jcr/2.0/3_Repository_Model.html]) the delimiter character needs to be changed. h3. |
...
Delimiter
Delimiter * {{info.magnolia.cms.core.Path}} has a {{SELECTOR_DELIMITER}} constant (a string) set as _~_ (tilde). h3. |
...
Selector name-value pair |
...
* a selector can now also be in the form name=value. I.e. given a URI {{[http://myserver/mypage~x~foo=bar~.html]}} _foo=bar_ is name value selector. This kind of selector is exposed by {{MgnlContext.getAttribute(selectorName)}} and has a _"local"_ scope (similar to _HttpServletRequest_ scope). Thus, in the current example, {{MgnlContext.getAttribute("foo")}} will return the String _"bar"_, whereas {{MgnlContext.getAttribute("foo", Context.SESSION_SCOPE)}} or {{MgnlContext.getAttribute("foo", Context.APPLICATION_SCOPE)}} will return _null_. h3. |
...
AggregationState
...
AggregationState * this class exposes some methods to set and get selectors. ** {{setSelector(String selector)}} is currently used by {{info.magnolia.cms.filters.RepositoryMappingFilter}} where the request URI is parsed and the selector part extracted. |
...
** {{String getSelector()}} returns the whole selector. I.e given the URI {{[http://myserver/mypage~x~foo=bar~.html]}} this method will return the String _x~foo=bar |
...
_ ** {{String\[\] getSelectors()}} returns the selector split into its discrete elements. I.e given the URI {{[http://myserver/mypage~x~foo=bar~.html]}} this method will return an array of two elements containing the "x" and the "foo=bar" String(s) |
...
SelectorUtil
...
h3. SelectorUtil * this is a utility class already existing before Magnolia 4.5. It provides two methods which are basically shortcuts to the getters in {{AggregationState |
...
}}: ** {{String getSelector() |
...
}} ** {{String getSelector(int index)}} |
Overview
Content Tools