2013-01-15 2 views
0

서버 재부팅, 재배치 등을 유지하기 위해 프로그래밍 방식으로 변경 한 속성이 필요합니다. 기본적으로 변경이 이루어질 때 속성 파일을 수정해야합니다. 이것은 가능한가? 현재 속성이 작동하지만 값이 속성 폴더에서 변경되지 않습니다.liferay에 속성 파일을 저장하는 방법

  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 

출력 코드가 실행 된 경우 :

빈 테스트 도움 변화

위에서 볼 수 있듯이 일반 자바 속성을 사용해 보았으며 liferay 속성을 사용해 보았습니다. 기본적으로 json을 가져 와서 편집하고 나중에 사용하기 위해 저장해야합니다. 다시 편집 할 때까지 변경 사항을 유지해야합니다.

+0

물론 가능합니다. 모든 프로그램에서 파일을 쓰고 읽을 수 있습니다. 그러나 이것이 당신에게 어떤 문제를 해결할 것인지 알려 주시면, 이것이 우수 사례이거나 문제를보다 쉽게 ​​해결할 수있는 경우 힌트를 드릴 수 있습니다. PortletPreferences를 통해 현재 사용할 수있는 답변 하나에 진술 한 것과 같습니다. (물론, 다른 가능성이 있습니다) –

답변

1

내 앞의 코드는 모두 나는 그것이

  PortletPreferences portletPreference = actionRequest.getPreferences(); 

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

주를 사용하는 것이었다 해결 방법 정크입니다 : 내가 행운으로 이전이 시도하고 문제가 내 수입이었다. javax.portlet.PortletPreferences;를 사용해야합니다. liferay portletpreferences 클래스는 아닙니다.

관련 문제