0

サーバーの再起動、再展開などを永続化するには、プログラムでプロパティを変更する必要があります。基本的に、変更が行われたときにプロパティ ファイルを変更する必要があります。これは可能ですか?現在、プロパティは機能していますが、値はプロパティ フォルダーで変更されません。

            String realPath = getPortletContext().getRealPath("/");

        FileInputStream in = new  FileInputStream(realPath+"json.properties");



        Properties p = new Properties();
        p.load(in);

        System.out.println(p.getProperty("json"));

              in.close();
        p.setProperty("json", "test");
        System.out.println(p.getProperty("json"));

        FileOutputStream out = new FileOutputStream(realPath+"json.properties");
        p.store(out, "test");
        in.close();

       out.close(); 

       System.out.println(com.liferay.util.portlet.PortletProps.get("json"));
       com.liferay.util.portlet.PortletProps.set("json", "change");
       com.liferay.util.portlet.PortletProps.set("new", "change");
       System.out.println(com.liferay.util.portlet.PortletProps.get("new"));

portal.properties:

json=help
new=new1

json.プロパティ

json=blank

コード実行時の出力:

ブランク テスト ヘルプの変更

上記のように、通常の Java プロパティを使用してみて、liferay プロパティを使用してみました。基本的に、jsonを取得して編集し、後で使用するために保存する必要があります。再度編集するまで変更を保持する必要があります。

4

1 に答える 1

1

私の以前のコードはすべてがらくたです。

            PortletPreferences portletPreference = actionRequest.getPreferences();

        portletPreference.setValue("help", "me");
        portletPreference.store();

注:以前にこれを試してみましたが、運が悪かったのですが、問題はインポートにありました。必ず javax.portlet.PortletPreferences を使用してください。liferay portletpreferences クラスではありません。

于 2013-01-15T15:26:49.870 に答える