我需要以编程方式进行属性更改以保持服务器重新启动,重新部署等。基本上,我需要在进行更改时修改属性文件。这甚至可能吗?目前,我有属性工作,但值不会在属性文件夹中更改。
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.properties
json=blank
代码运行时输出:
空白 测试 救命 变化
如上所示,我尝试使用常规java属性并尝试使用liferay属性。我需要基本上需要获取一些json,编辑它,然后保存以供以后使用。我需要更改才能继续,直到再次编辑。
答案 0 :(得分:1)
我以前的所有代码都是垃圾,我解决它的方式是使用
PortletPreferences portletPreference = actionRequest.getPreferences();
portletPreference.setValue("help", "me");
portletPreference.store();
注意:我之前尝试过没有运气,问题是我的进口。确保你使用 javax.portlet.PortletPreferences;而不是liferay portletpreferences类。