“集成JavaScript组件和扩展”以及如何将状态更改从JS发送回服务器?

时间:2016-03-04 14:28:49

标签: vaadin vaadin7

通过关注https://vaadin.com/docs/-/part/framework/gwt/gwt-javascript.html上的教程,我为FullCalendar js库创建了一个组件。它工作得很好,但我仍然无法弄清楚如何将JS端的getState()更改发送回服务器端以保持不变。 Vaadin将服务器端状态对象发送给JavaScript,我可以在我的JS组件部分中以'this.getState().property'的形式访问它。现在,当用户对Fullcalendar进行一些浏览器更改(例如,每月切换视图)并且可以检测它并将其存储回状态对象"this.getState().viewName='yyy'"但是这些更改不会同步回服务器,因此我的服务器端代码可以'在我的状态JavaBean中看到它......

我还阅读了这篇文章http://vaadinsnippets.blogspot.cz/2012/10/smooth-integration-of-vaadin-7-and.html,但仍然不知道它应该如何运作。任何提示?

1 个答案:

答案 0 :(得分:1)

你无法真正改变共享状态"在客户端上。 来自Vaadin文档https://vaadin.com/docs/-/part/framework/gwt/gwt-shared-state.html

  

[共享状态]应该在客户端被视为只读,如   它没有序列化回服务器端。

我认为您正在寻找的是RPC:

  

从客户端到服务器端的RPC调用都是通过   扩展ServerRpc接口的RPC接口。服务器RPC   interface简单地定义了可以通过的方法调用的任何方法   接口

https://vaadin.com/docs/-/part/framework/gwt/gwt-rpc.html