通过关注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,但仍然不知道它应该如何运作。任何提示?
答案 0 :(得分:1)
你无法真正改变共享状态"在客户端上。 来自Vaadin文档https://vaadin.com/docs/-/part/framework/gwt/gwt-shared-state.html:
[共享状态]应该在客户端被视为只读,如 它没有序列化回服务器端。
我认为您正在寻找的是RPC:
从客户端到服务器端的RPC调用都是通过 扩展ServerRpc接口的RPC接口。服务器RPC interface简单地定义了可以通过的方法调用的任何方法 接口