将配置文件转换为HTML

时间:2009-07-15 12:01:29

标签: java html properties

我有一堆配置文件,通常是属性文件,从应用程序打开并像notepad一样编辑。现在要求是选择每个属性并找到它适合的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 个答案:

答案 0 :(得分:1)

我会定义一个XML文件,列出每个属性键,以及每个属性键在HTML中显示的方式。

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

然后如果要将Properties显示为HTML文件,只需使用XSLT解析此XML文件,使用属性键匹配正确的元素并显示其内容(使用转换&lt; display类型的XSL文件) =“radio”&gt;进入&lt; input type =“radio”&gt;)

的列表

Dunno,如果它适合您的应用配置,但这将是我的第一个适合的想法。

答案 1 :(得分:0)

就像你说的那样,XSLT似乎是要走的路。

答案 2 :(得分:0)

一个小的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

答案 3 :(得分:0)

如果您有1200个文件(哇),那么我看不到任何其他方式,而是自动化它。

如果您可以从填充的属性中计算出可能的值,那么您可以使用不同的解决方案。

所以没有很多价值观 如果当前值为Y,那么唯一可能的答案是N与true或false相同 如果该值是一个字符串,则允许输入字符串。

您说您使用Velocity,因此您的模型可以访问完整的Java。 将属性文件读入Properties对象,从中可以获得所有键的枚举。 对于属性文件中的所有值,使用速度模板Velocity构建html。

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

我相信你明白了。 不要依赖语法只是代码来尝试解释查看问题的不同方法。希望能帮助到你。 肖恩