2012-10-08 139 views
1

我是GWT新手,面临一个问题。GWT属性文件配置

如何在启动时为.properties文件进行初始配置。 我想在GWT App中创建一个。

此外,GWT有客户端和服务器包。

我想在客户端软件包中设置配置,因为所有配置都属于客户端。

我的实际需要,

我有一个textarea的这会占用字符中的固定数量的,在我的属性文件中像下面长度定义。

所以我必须读取属性文件进行验证。

my.properties

smsConstraintEnabled=true 
smsConstraintCharLimit=160 

我发现几个链接,但所有人都在谈论关于区域设置属性文件,我没有在语言环境方面的任何需求,而是需要简单的键值配置。

我想要这个文件在启动时或入口点本身加载,然后我可以在任何客户端包类中使用它进行验证。

在此先感谢。

回答

3

使用Constants接口。它是以I18N为基础构建的,但在这种情况下也可以正常工作,在这种情况下,您可以为单个语言环境(默认语言环境)提供常量值(因此用于编译应用程序的每个语言环境)。

但是,这意味着在编译时,文件是读取,而不是运行时(即每次更改属性文件时都必须重新编译您的应用程序)。

如果你想要更多的东西动态,然后读取服务器端的文件并将信息传递给客户端。最简单并且以最小的开销,使用dynamic host page。若要读取客户端代码中的值,请使用Dictionary(和Integer.parseInt等)或使用JSNI(可能使用overlay type)。

+0

谢谢托马斯,其实我很困惑该怎么做,因为每个网站都给出了考虑国际需求的例子,所以我只是想这不是我的需要。我做了与常量界面,它的工作。谢谢。 – Jayesh

+0

也是必须具有属性文件名称和接口名称是相同的?你也可以详细描述这一行:“你为单个语言环境提供的常量值,默认值(因此用于编译你的应用程序的每个语言环境)”。 – Jayesh

+1

文件名必须匹配,这是GWT在为接口生成实现类时如何找到属性文件。我的意思是,如果你只提供一个'MyConstants.properties'(没有指定的区域设置==默认区域设置)并且没有'MyConstants_en.properties'(或者其他一些区域设置),那么这个文件将被用于你的应用程序的语言环境。 –