0

jspファイルでwcmライブラリを使用するのは初めてで、少し行き詰まっています。使用しているオーサリング テンプレートに新しい要素 (「公開日」) を作成し、「更新日」フィールドを生成するためにアトム呼び出しから参照しているカスタム jsp コンポーネントを作成しました。私がやろうとしているのは、追加した要素が存在するかどうかを確認することです.nullの場合は更新された日付フィールドを使用し、そうでない場合は「公開日」要素を使用します。

私が試してみました:

DocumentIdIterator docIdsIter = workspace.findContentByPath(request.getRequestURI());
if (docIdsIter.hasNext()) {
    Document doc = (Document)workspace.getById(docIdsIter.nextId());
                    // Cast to Content to retrieve the Publication date from the date component
    Content myContent = (Content)doc;
                    // Get the Publication date
    if (myContent.hasComponent("Publication Date")){
        out.write("I am getting here");
        DateComponent dateComponent =     (DateComponent)myContent.getComponent("Publication Date");
        if (dateComponent != null){
             out.write(dateComponent.toString());
        } else {
            //out.write(last modified date);
        } 
   } else {
        //out.write(last modified date);
   }

しかし、最初のif条件に入ることさえありません。要素が存在するかどうかを簡単に確認するための簡単な方法が必要だと思います。助けがあれば幸いです。

4

1 に答える 1

1

[Property] タグを使用して、コンテンツ アイテムから日付を取得できます。

[Property context="autofill" type="content" format="DATE_TIME_SHORT" field="lastmodifieddate"]

おそらくあなたが探しているものに似たものです。

必要な日付を取得するために、フォーマットとフィールドの両方に使用できるさまざまなオプションが多数あります。

format="DATE_SHORT"
format="DATE_MEDIUM"
format="DATE_LONG"
format="DATE_FULL"
format="DATE_TIME_SHORT"
format="DATE_TIME_MEDIUM"
format="DATE_TIME_LONG"
format="DATE_TIME_FULL"
format="TIME_SHORT"
format="TIME_MEDIUM"
format="TIME_LONG"
format="TIME_FULL"

lastmodified - 最終変更日と最終変更メッセージを表示します。
lastmodifieddate - 最終更新日を表示します。
作成 - 作成日を表示します。
creationdate - 作成日を表示します。
lastmodifier - アイテムを最後に変更したユーザーの名前を表示します。
作成者 - アイテムを作成したユーザーの名前を表示します。

于 2013-08-28T20:30:14.073 に答える