【问题标题】:Embedding GWT widget in JSF application在 JSF 应用程序中嵌入 GWT 小部件
【发布时间】:2012-09-21 21:27:44
【问题描述】:

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

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

编辑:

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

【问题讨论】:

    标签: java jsf gwt


    【解决方案1】:

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

    【讨论】:

    • 这样我将从 GWT 传递数据,而不是从页面的其余部分传递数据。想象一下,有一个由 JSF 生成的巨大表格,以及一个用 GWT 编写的带有位置选择器的小而精美的地图。当用户单击“提交”时,我想基于表单和地图生成一些数据(在服务器上)——我需要以相同的方法同时从地图中获取表单内容和位置。问题是 - 如何实现这一目标? (这只是一个例子,GWT 小部件比简单的位置选择器复杂得多)
    【解决方案2】:

    我假设您正在提交 HTML 表单(如果没有,请说明您当前如何将数据传输到服务器)

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

    【讨论】:

    • 是的,我正在提交一个表单(有时使用 Richfaces 的 ajax)。那么,您建议将 java 对象序列化为输入元素,然后在服务器上反序列化它们? (因为传递给服务器的值不只是一个字符串,它会是许多对象的图)。如果是这样 - 这里应该使用哪种 GWT 序列化技术?
    • 如果是复杂对象,必须序列化(而且这里不能使用GWT-RPC)。我可能会使用AutoBeans - 它们可以在客户端和服务器上自动编码和解码。但基本上任何technique都可以使用。
    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 2011-07-04
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多