Java 在JSF应用程序中嵌入GWT小部件

Java 在JSF应用程序中嵌入GWT小部件,java,jsf,gwt,Java,Jsf,Gwt,在现有应用程序(JSF)中,我想用GWT中实现的小部件替换小部件。我还想重用托管bean中实现的现有逻辑。 服务器上的逻辑需要的不仅仅是来自小部件的数据(因此它需要用户操作提交的所有内容)——我不能只使用GWT-RPC或类似的机制(因为我不会获得JSF数据) 问题是:如何将数据从GWT传递到服务器,以便在GWT小部件在处理提交的JSF操作的同一位置编辑java对象后,我可以访问(在服务器上)java对象 编辑: 想象一下,JSF生成了一个巨大的表单,以及一个用GWT编写的带有位置选择器的小型奇特

在现有应用程序(JSF)中,我想用GWT中实现的小部件替换小部件。我还想重用托管bean中实现的现有逻辑。 服务器上的逻辑需要的不仅仅是来自小部件的数据(因此它需要用户操作提交的所有内容)——我不能只使用GWT-RPC或类似的机制(因为我不会获得JSF数据)

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

编辑:


想象一下,JSF生成了一个巨大的表单,以及一个用GWT编写的带有位置选择器的小型奇特地图。当用户单击“提交”时,我想根据表单和地图生成一些数据(在服务器上)——我需要表单内容和地图位置,同时使用相同的方法。问题是——如何做到这一点?(这只是一个示例,GWT小部件比简单的位置选择器复杂得多)

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

< P>我假定您正在提交HTML表单。(如果没有,请解释您当前如何将数据传输到服务器)


如果是,那么您可以向现有表单添加一个隐藏的输入元素,并让GWT小部件在小部件的状态发生变化时(例如在ClickHandler中)更改该隐藏元素的值.

这样,我将从GWT传递数据,但不会从页面的其余部分传递数据。想象一下,JSF生成了一个巨大的表单,以及一个用GWT编写的带有位置选择器的小型奇特地图。当用户单击“提交”时,我想生成一些数据(在服务器上)基于表单和地图-我需要表单内容和地图位置,同时使用相同的方法。问题是-如何实现?(这只是一个例子,GWT小部件比简单的位置选择器复杂得多)是的,我正在提交表单(有时使用richfaces的ajax).所以,您建议将java对象序列化为input元素,然后在服务器上反序列化它们?(因为传递给服务器的值不仅仅是一个字符串,它将是一个多对象的图形)。如果是,这里应该使用GWT的哪种序列化技术?如果是复杂对象,则必须序列化(这里不能使用GWT-RPC)。我可能会使用-它们可以在客户端和服务器上自动编码和解码。但基本上可以使用任何一种。