Преобразование файла конфигурации в HTML - PullRequest
1 голос
/ 15 июля 2009

У меня есть куча файлов конфигурации, которые, как правило, являются файлами свойств, которые открываются из приложения и редактируются как блокнот. Теперь необходимо выбрать каждое свойство и определить, к какому HTML-тегу оно подходит, и отобразить весь файл свойств как страницу HTML , Например:

Файл Security.Properties

//This property checks if the user has already logged or not
//Possible values Y N

order.security.Login=Y

Таким образом, указанное выше свойство имеет два возможных значения Y N. Эквивалентный формат HTML может быть переключателем с Y N. Аналогичным образом, если другое свойство принимает значения 1,2, HTML представляет собой Listbox с этими двумя значениями.

Я знаю, что это немного громоздко, но нужно сделать. Разработка JAVA JAVASCRIPT VELOCITY Моя идея - преобразовать все файлы свойств в XML, а затем использовать XSLT для рендеринга в виде HTML. Я хотел бы услышать больше идей, включая проблемы с производительностью.

Ответы [ 4 ]

1 голос
/ 15 июля 2009

Я бы определил XML-файл, в котором перечислены все ключи свойств и для каждого, как он будет отображаться в HTML.

<property key="order.security.Login">
    <display type="radio" values="Y,N" />
</property>

тогда, если вы хотите отобразить Свойства в виде HTML-файла, просто проанализируйте этот XML-файл с помощью XSLT, используя ключ свойства, чтобы сопоставить нужный элемент и хорошо отобразить его содержимое (с XSL-файлом, который преобразует в список )

Не знаю, подходит ли оно к конфигурации вашего приложения, но это будет моей первой идеей.

0 голосов
/ 15 июля 2009

Если у вас 1200 файлов (вау), то я не вижу другого пути, кроме как автоматизировать его.

Если вы можете определить возможные значения из заполненных свойств, вы можете использовать другое решение.

Так что не может быть много значений Если текущее значение Y, то единственный возможный ответ - N, то же самое с истиной или ложью Если значение является строкой, отличной от указанной, вы разрешаете ввод строки.

Вы говорите, что используете Velocity, поэтому у вашей модели есть доступ к полной Java. Считайте ваш файл свойств в объект Properties, из которого вы можете получить Перечисление всех ключей. для всех значений в файле свойств создайте свой HTML, используя шаблоны скорости Velocity.

Map<String, YourHolderObject> velocityPropertiesValues = 
    new HashMap<>(String, YourHolderObject);

Properties properties = new Properties("your properties file")
Enumeration keys = properties .keys();

while (keys.hasMoreElements()) {
  String key = (String)keys.nextElement();
  String value = (String)p.get(key);
//.......get YourHolderObject which can will have methods like isBoolean, 
// if it is then in velocity create radio buttons etc
}


//then in velocity use that enriched object to decide what html to generate 
#foreach ($key in $properties.keySet())
 #if($refreshed.get($key).isBoolean)
   //generate the radio buttons
 #elseif($refreshed.get($key).isYesNoList)
    //do something else
 #
#end

Я уверен, что вы поняли идею. Не полагайтесь на синтаксис, это просто код, чтобы попытаться объяснить другой взгляд на вашу проблему. Надеюсь, поможет. Шон

0 голосов
/ 15 июля 2009

Как насчет небольшого javadoc / c # doc:

//<desc>This property checks if the user has already logged or not
//Possible values Y N</desc>
//<type>YN</type>
order.security.Login=Y
0 голосов
/ 15 июля 2009

Как вы сказали, XSLT - это путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...