2012-01-13 118 views
14

是否可以在GWT客户端代码和服务器代码之间“共享”一个Java类?如何在GWT客户端代码和服务器代码之间共享一个类?

我有一个简单的类,只是几个Strings和几个List<String>的。我希望能够在客户端代码和服务器端代码中使用这个类来保持一致性。

只是为了给出一些背景知识,我试图分享的这个类只是一个包含一些额外信息的错误消息的容器。在我的应用程序中有一些错误会阻止保存,所以我们在客户端执行这些检查(保存之前)。然后在保存之后,我们会对服务器端保存的对象执行更多“验证”检查。

我明白,它将不得不被“编译”两次,一次用于GWT编译,一次用于正常的javac编译,但似乎应该是可能的。

有没有办法建立我的GWT项目来做到这一点?

回答

18

使用GWT的原因之一是为客户端和服务器提供单一域模型。

在服务器代码和客户端之间共享类是常见的做法。

与GWT客户端源代码一般项目拆分多达三个包

com.yourpackage 
       -shared 
       -client 
       -server 

其中shared包编译既Java字节码和javascript,client的JavaScript,和服务器侧逻辑放置在server包。

客户端的编译路径可以在*.gwt.xml文件中配置。

+3

GWT的标准是使用名称'shared'。这就是说,很好的答案。 +1 – 2012-01-13 18:35:23

+0

Chris,同意,谢谢。 – 2012-01-13 18:37:22

+4

谢谢Mairbek,这对我很有用。为了更具体一点,我们没有“共享”软件包,所以我不得不创建一个新软件包。 我还必须在我的* .gwt.xml文件中添加一行:'' – cshanes 2012-01-13 18:41:11

相关问题