如何在GWT客户端代码和服务器代码之间共享一个类?

csh*_*nes 15 java gwt

是否可以在GWT客户端代码和服务器代码之间"共享"Java类?

我有一个简单的课程,只有几个Strings和几个List<String>.我希望能够在客户端代码和服务器端代码中使用此类只是为了一致性.

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

我知道它必须被"编译"两次,一次用于GWT编译,一次用于正常的javac编译,但看起来应该是可能的.

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

Mai*_*kov 19

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

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

通常使用GWT客户端源代码的项目最多可拆分三个包

com.yourpackage
               -shared
               -client
               -server
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢Mairbek,这对我有用.为了更具体一点,我们没有"共享"包,所以我不得不创建一个新的包.我还必须在我的*.gwt.xml文件中添加一行:`<source path ='shared'/>` (4认同)
  • GWT的标准是使用名称`shared`.话虽如此,很好的答案.+1 (3认同)