2013-04-04 3 views
0

У меня есть приложение grails, которое читается из файла свойств. Я создал страницу администрирования, которая позволяет пользователю просматривать настройки в этом файле. Я хочу разрешить пользователю обновлять различные свойства и сохранять их обратно в файл свойств с помощью Grails.Сохраните изменения в файле свойств в Grails

Моя проблема в том, что я не могу понять, как сохранить изменения обратно в файл свойств.

Вот мой код, который считывает из файла и вносит изменения в свойства:

def env = params.getAt("environment"); 
    if (env != null){ 
    //Read from Property file based on user selection 
     def props = new Properties() 
     def cl = Thread.currentThread().contextClassLoader 
     def filepath = env+'.properties' 
     props.load servletContext.getResourceAsStream("/WEB-INF/"+ filepath) 

     Enumeration e = props.propertyNames(); 
     while (e.hasMoreElements()) { 
      String key = (String) e.nextElement(); 
      def input = params.getAt(key) 
      if (input != null){ 
       props.setProperty(key,input) 
      } 
     } 
     //props.store(propFile.newWriter(), null) 

    } 

Любые идеи о том, как сохранить/перезаписать файл example.properties в /WEB-INF/example.properties?

ответ

1

Я думаю, что вы могли бы искать для метода getRealPath в ServletContext http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)

Простой пример, который показывает, как использовать его

http://82.157.70.109/mirrorbooks/javaservletjspcookbook/0596005725_jsvltjspckbk-chp-14-sect-7.html 
+0

ссылку вы размещены не кажется работать. Поэтому мне нужно использовать get real path, но мне не нужно писать обратно в файл свойств через выходной поток? Не знаете, как это сделать в groovy/grails – FarscapePROJ

+0

Если вы получите реальный путь, скажем, web-inf, то вы можете найти абсолютный путь к вашему файлу, тогда вы можете открыть выходной поток точно так же, как в простой Java, используя properties.store (См. Java.util.Properties javadoc), например ... Надеюсь, это поможет. – rimero

Смежные вопросы