На сайтах Webcenter, как получить значения атрибутов страницы с помощью кода шаблона

<assetset:getattributevalues name="sachin" attribute="Date_SV" listvarname="date_sv" typename="Content_Att" />

приведенный выше код обычно представляет собой код для получения значения атрибута Flex при написании кода шаблона. На самом деле typename используется для указания типа атрибута Flex.

Какой код атрибута страницы? Во-вторых, каким должно быть значение «typename», чтобы получить значение атрибута страницы?


person qaquery    schedule 30.08.2016    source источник
comment
‹assetset:getattributevalues ​​name=sachin attribute=Date_SV listvarname=date_sv typename=pre_categories_Att /> обычно это код для получения значения атрибута Flex при написании кода шаблона   -  person qaquery    schedule 30.08.2016


Ответы (2)


Вот пример использования для получения атрибута страницы «статья»:

<%
        Session ses = SessionFactory.getSession();
        AssetDataManager mgr =(AssetDataManager) ses.getManager( AssetDataManager.class.getName() );
        AssetId id = new AssetIdImpl( "Page",new Long(ics.GetVar("cid")));
        List attrNames = new ArrayList();
        attrNames.add( "articles" );
        AssetData data = mgr.readAttributes( id, attrNames );
        AttributeData articlesData = data.getAttributeData( "articles" );
        List<AssetId> relatedArticles = null ;
        if (articlesData != null) {
            relatedArticles=(List<AssetId>) articlesData.getData();
        }
%>

Однако я не рекомендую вам использовать этот метод, если вы используете WCS 12g: лучше использовать контроллеры. Новая философия заключается в том, чтобы прочитать все ваши ресурсы в контроллере groovy, а затем использовать JSTL для отображения значений ваших ресурсов в JSP.

Вот код для groovy-контроллера:

public Map readAsset(String type, String name) {
    Map assetMap = newAssetReader()
    .forAssetName(type, name)
    .selectAll(true)
    .selectImmediateOnlyParents(true)
    .includeLinks(true)
    .includeLinksForBlobs(true)
    .read();
}
Map myPage = readAsset("Page","Home")
models.put("homePage",myPage)

А вот код в вашем JSP:

<%@ taglib prefix="cs" uri="futuretense_cs/ftcs1_0.tld"%>
<%@ taglib prefix="ics" uri="futuretense_cs/ics.tld"%>
<%@ taglib prefix="fragment" uri="futuretense_cs/fragment.tld"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<cs:ftcs>
     Here is the full page asset : ${homePage} <br/>
     Here is just the page name : ${homePage.name} <br/>
</cs:ftcs>

Наслаждайтесь простотой использования...

person Christophe    schedule 02.09.2016

<assetset:getattributevalues name="sachin" attribute="Date_SV" listvarname="date_sv" typename="PageAttribute"

Имя типа должно быть "PageAttribute" без пробелов между ними.

person qaquery    schedule 22.06.2017