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"));

门户网站属性:

json=help
new=new1

json.properties

json=blank

运行代码时的输出:

空白测试帮助更改

正如您在上面看到的,我尝试使用常规 java 属性并尝试使用 liferay 属性。我需要基本上需要获取一些 json,对其进行编辑,然后将其保存以备后用。我需要更改持续到再次编辑。

4

1 回答 1

1

我以前的所有代码都是垃圾,我解决它的方式是使用

            PortletPreferences portletPreference = actionRequest.getPreferences();

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

Note: I tried this before with no luck and the problem was my imports. make sure that you use javax.portlet.PortletPreferences; and not the liferay portletpreferences class.

于 2013-01-15T15:26:49.870 回答