2012-09-21 57 views
0

在现有应用程序(JSF)中,我想用GWT中实现的小部件替换小部件。我也想重用在托管bean中实现的现有逻辑。 服务器上的逻辑需要更多的数据才能工作(所以它需要一切由用户操作提交的内容) - 我不能只使用GWT-RPC或类似的机制(因为我不会获得JSF数据) 。在JSF应用程序中嵌入GWT小部件

现在的问题是:如何将数据从GWT传递到服务器,以便我可以在处理提交的JSF操作的同一位置通过GWT小部件编辑后访问(在服务器上)java对象?

编辑:

想象一下,有一个由JSF产生巨大的形式,并写在GWT位置选择器小,看上图。当用户点击“提交”时,我想根据表单和地图生成一些数据(在服务器上) - 我需要使用同一个方法同时从地图中获取表单内容和位置。问题是 - 如何实现这一目标? (这只是一个例子,GWT小部件比简单的位置选择器复杂得多)

回答

0

您可以使用RequestBuilder从您的GWT客户端代码调用服务器端逻辑。如果服务器端有一个RESTful端点,它应该相对容易。如果使用SLSB编写后端,我会考虑服务器端的一些中间层(与GWT进行通信),因为afaik,会话bean不可能(或接近不可能)直接从JavaScript调用。

+0

这样我会从GWT传递数据,但不会从页面的其余部分传递数据。想象一下,JSF生成了一个巨大的表单,还有一个用GWT编写的位置选择器的小型地图。当用户点击“提交”时,我想根据表单和地图生成一些数据(在服务器上) - 我需要使用同一个方法同时从地图中获取表单内容和位置。问题是 - 如何实现这一目标? (这只是一个例子,GWT widget比一个简单的位置选择器复杂得多) – mabn

0

我假设你正在提交一个HTML表格(如果没有,请解释你目前如何将数据传输到服务器)

如果是的话,那么你可以添加一个隐藏的输入元素到你现有的表单中,并且当小部件的状态改变时(例如在ClickHandler中)让GWT小部件改变该隐藏元素的值。

+0

是的,我正在提交一个表单(有时使用richfaces'ajax)。那么,你打算将Java对象序列化为输入元素,然后在服务器上反序列化它们? (因为传递给服务器的值不会只是一个字符串,而是一个很多对象的图形)。如果是这样 - 这里应该使用GWT的序列化技术? – mabn

+0

如果它是一个复杂的对象,它必须被序列化(在这里你不能使用GWT-RPC)。我可能会使用[AutoBeans](http://code.google.com/p/google-web-toolkit/wiki/AutoBean#AutoBeanCodex) - 它们可以在客户端和服务器上自动编码和解码。但基本上可以使用任何[技术](http://stackoverflow.com/questions/683123/json-java-serialization-that-works-with-gwt)。 –

相关问题