0

要件を頂きました。2 つのテキスト フィールドValueKeyfrom 構造を Web コンテンツ表示ポートレットに追加しました。 「キー」と「値」の 2 つのフィールドを持つ Web コンテンツ

現在、ポートレットでは、以下のようなハード コードから値を取得しています。

BasicModel model = (BasicModel)requestContext.getFlowScope().get("BasicModel");
        if(model == null){
            model = new BasicModel();
        }
        model.setEmployeeId("AB1223344S");
        model.setHireDate("01-Jan-2000");
        model.setNiNumber("AB123456S");
        model.setDateOfBirth("12-Dec-1980");
        model.setBasicForm(new BasicDetailsForm());
    }

しかし、私が欲しいのは、からvalueそれぞれの を取得することです。同様に、このように追加された Web コンテンツ構造フィールドに asとas の値を指定した場合。attributeweb contentlfr.intel.empidkeyABSD1822Dキーと値の新しい追加情報

このようにキーの値を取得できます。

model.setEmployeeId(lfr.intel.empid);
4

2 に答える 2

0

JournalArticleオブジェクトを取得できると仮定して、これを試してください。resourcePrimKey

long resourcePrimKey = 12345; //hard coded the resourcePrimKey
JournalArticle article = JournalArticleLocalServiceUtil.getLatestArticle(resourcePrimKey);
com.liferay.portal.kernel.xml.Document document = SAXReaderUtil.read(article.getContentByLocale("en_US"));

Node keyNode = document.selectSingleNode("/root/dynamic-element[@name='Key']/dynamic-content");
String key = keyNode.getStringValue();

Node valueNode = document.selectSingleNode("/root/dynamic-element[@name='Value']/dynamic-content");
String value = valueNode .getStringValue();
于 2016-06-03T05:00:19.333 に答える
0

その関数にキーを渡すカスタム関数を作成できます。これで、その関数は JournalArticleLocalServiceUtil API を使用して DB からそれぞれの値を取得します。

ここで、JournalArticleLocalServiceUtil から値を取得する方法を見つける必要があります。Google で検索するか、このリンクが役立ちます。

ありがとう。

于 2015-09-09T13:12:02.283 に答える