Vous devez créer et enregistrer un fichier JSP de sérialisation pour transformer les objets versionnés par le serveur en XML compris par le Management Center. Lorsque vous étendez la gestion des versions de contenu dans un objet métier, vous souhaitez afficher les versions dans l'interface utilisateur du Management Center.
Lorsque vous affichez les versions dans l'onglet Version, le service GetContentVersion est appelé et ce service appelle le JSP de sérialisation pour extraire et afficher les objets métier versionnés.
Lorsque vous étendez la gestion des versions de contenu d'objets métier supplémentaires, vous devez créer un fichier JSP de sérialisation et l'enregistrer dans la configuration Struts pour le personnaliser ( struts-extension.xml). Initialement, ce fichier est vide et il est prioritaire sur tous les fichiers de configuration Struts.
Procédure
-
Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
-
Créez un fichier JSP de sérialisation.
-
Créez un fichier JSP à l'aide de la syntaxe suivante : GetVersioned objectType_value .jsp ; où objectType_value est le type d'objet de l'objet versionné.
Par exemple,
GetVersionedCatalogGroup.jsp définit le fragment JSP du type d'objet CatalogGroup.
Assurez-vous de bien stocker ce fichier JSP dans le même emplacement que les autres fichiers JSP.
-
Définissez le nouveau fichier JSP de sérialisation. Le code ci-après est un exemple de fichier JSP de sérialisation pour un type d'objet CatalogGroup.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
<wcf:getData type="com.ibm.commerce.catalog.facade.datatypes.CatalogGroupType[]"
var="category" expressionBuilder="getCatalogGroupDetailsByIDs" varShowVerb="showVerb">
<wcf:contextData name="storeId" data="${param.storeId}"/>
<wcf:contextData name="catalogId" data="${param.catalogId}"/>
<wcf:contextData name="versionId" data="${param.objectVersionId}"/>
<wcf:param name="UniqueID" value="${param.UniqueID}"/>
</wcf:getData>
<c:if test="${!(empty category)}">
1a
<c:set var="objectVersionId" value="${param.objectVersionId}" scope="request" />
1b
<c:set var="objectVersionNumber" value="${param.objectVersionNumber}" scope="request" />
<c:forEach var="catalogGroup" items="${category}">
<c:set var="childType" value="ChildCatalogGroup" />
<c:set var="objectType" value="CatalogGroup" />
<c:set var="owningStoreId" value="${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}" />
<c:if test="${(param.storeId) != owningStoreId}">
<c:set var="childType" value="ChildInheritedCatalogGroup" />
<c:set var="objectType" value="InheritedCatalogGroup" />
</c:if>
<jsp:directive.include file="serialize/SerializeCatalogGroup.jspf"/>
</c:forEach>
</c:if>
Les lignes avec des renvois sont décrites ci-dessous :
- 1a-b Les propriétés
objectVersionId et objectVersionNumber doivent être incluses dans votre fichier JSP pour que la structure sache si l'objet renvoyé est un objet de version ou non.
- Facultatif :
Si votre JSP de sérialisation inclut déjà SerializeChangeControlMetaData.jsp, définissez une variable dans le fichier SerializeCatalogGroup.jspf. Sinon, effectuez l'étape ci-après.
<object objectType="${objectType}">
<jsp:include page="/cmc/SerializeChangeControlMetaData" />
<catgroupId>
${catalogGroup.catalogGroupIdentifier.uniqueID}</catgroupId>
<qualifiedCatgroupId>
${owningCatalog}_${catalogGroup.catalogGroupIdentifier.uniqueID}</qualifiedCatgroupId>
<identifier>
<wcf:cdata data="${catalogGroup.catalogGroupIdentifier.externalIdentifier.groupIdentifier}"/>
</identifier>
<objectStoreId>
${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}</objectStoreId>
<ownerId>
${catalogGroup.catalogGroupIdentifier.externalIdentifier.ownerID}</ownerId>
<owningCatalog>
${owningCatalog}</owningCatalog>
</object>
- Facultatif :
Dans le fichier Serialize objectType_value .jspf, ajoutez les lignes pour récupérer
objectVersionId et objectVersionNumber s'ils existent.
<object objectType="${objectType}">
<c:if test="${!empty objectVersionId}">
<objectVersionId>
${objectVersionId}</objectVersionId>
</c:if>
<c:if test="${!empty objectVersionNumber}">
<objectVersionNumber>
${objectVersionNumber}</objectVersionNumber>
</c:if>
<jsp:include page="/cmc/SerializeChangeControlMetaData" />
<catgroupId>
${catalogGroup.catalogGroupIdentifier.uniqueID}</catgroupId>
<qualifiedCatgroupId>
${owningCatalog}_${catalogGroup.catalogGroupIdentifier.uniqueID}</qualifiedCatgroupId>
<identifier>
<wcf:cdata data="${catalogGroup.catalogGroupIdentifier.externalIdentifier.groupIdentifier}"/>
</identifier>
<objectStoreId>
${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}</objectStoreId>
<ownerId>
${catalogGroup.catalogGroupIdentifier.externalIdentifier.ownerID}</ownerId>
<owningCatalog>
${owningCatalog}</owningCatalog>
</object>
Les deux éléments
<c:if> doivent être ajoutés pour extraire
objectVersionId et
objectVersionNumber s'ils existent
-
Sauvegardez et fermez le nouveau fichier de sérialisation JSP.
-
Enregistrez le JSP de sérialisation dans le fichier de configuration des actions Struts.
-
Accédez à .
-
Ouvrez le fichier struts-extension.xml à l'aide d'un éditeur de fichier de configuration Struts.
-
Ajoutez un nouveau mappage d'action :
- Cliquez sur l'onglet Mappages d'action .
- Dans la section Mappages d'action , cliquez sur Ajouter .
- Sous Les mappages d'action suivants sont définis pour ce fichier config, vous pouvez voir
/action1 ; entrez votre nouveau GetVersioned objectType_value. Par exemple, celui de CatalogGroup est GetVersionedCatalogGroup
- Dans la section Attributs de mappage d'action , sélectionnez Inclure , puis entrez le nouveau fichier GetVersioned objectType_value .jsp. Par exemple, celui de CatalogGroup ressemble à
/jsp/commerce/catalog/restricted/GetVersionedCatalogGroup.jsp
- Sauvegardez le fichier de configuration struts-extension.xml.
- Pour vérifier vos mises à jour, affichez la source du fichier de configuration struts-extension.xml et vérifiez que le code que vous avez ajouté apparaît. Par exemple, voici celui de l'objet CatalogGroup.
<action path="/GetVersionedCatalogGroup" include= "/jsp/commerce/catalog/restricted/GetVersionedCatalogGroup.jsp"/>
-
Redémarrez le serveur de test HCL Commerce afin de rendre disponible la nouvelle configuration.