3

IBM Websphere Commerce Foundationフレームワーク(WCF)の並べ替えデータを取得する方法はありますか?

たとえば、Websphere CommerceJSPファイルからのこのスニペット:

<wcf:getData type="com.ibm.commerce.store.facade.datatypes.GeoNodeType[]"
             var="geoNodes" varException="geoNodeException" expressionBuilder="findChildGeoNodesByGeoNodeUniqueID">
  <wcf:param name="accessProfile" value="IBM_Store_All" />
  <wcf:param name="parentUniqueId" value="${provinceId}" />
</wcf:getData>

GeoNodeTypeの特定のデータフィールドでデータを並べ替えるにはどうすればよいですか?次のようなものを追加できます<wcf:param name="sortBy" value="Description" />か?

4

1 に答える 1

3

例の ExpressionBuilder "findChildGeoNodesByGeoNodeUniqueID" は、/Stores/WebContent/WEB_INF/config/com.ibm.commerce.store/get-data-config.xmlで次のように宣言されています。

<expression-builder>
    <name>findChildGeoNodesByGeoNodeUniqueID</name>
    <data-type-name>GeoNode</data-type-name>
    <expression-template>{_wcf.ap=$accessProfile$}/GeoNode[ParentGeoNodeIdentifier[UniqueID='$parentUniqueId$']]</expression-template>
    <param>
        <name>accessProfile</name>
        <value>IBM_Store_All</value>
    </param>
    <param>
        <name>parentUniqueId</name>
        <value></value>
    </param>
</expression-builder>

expression-builderタグのドキュメントによると、 expression-languageがexpression-builderタグ内で指定されていない場合、デフォルトで XPath 言語が使用されます。残念ながら、XPath は順序付けをサポートしていません。

独自の ExpressionBuilder クラスを実装し (まだ行っていません)、この新しいクラス内に任意の種類の並べ替えを実装し、get-data-config.xml で指定できると思います。

于 2013-02-01T13:03:44.913 に答える