gpt4 book ai didi

JSF/Applet 集成

转载 作者:行者123 更新时间:2023-12-04 20:42:03 26 4
gpt4 key购买 nike

在我们当前的原型(prototype)中,大多数标准 HTML 控件都被小程序取代,最重要的是表单提交由小程序触发。

有没有一种方法可以像

一样在服务器端调用关联的操作
<h:commandButton action="#{ctrl.doit}"/>?

本文Applet and JSF Integration - example有同样的问题,但没有合适的答案。从服务器的角度来看,applet 是表单的替代品。它填充专用(隐藏)字段并提交 - 不与服务器直接通信。

编辑

到目前为止,我知道有这些集成的可能性:

  • 添加一个(隐藏的)UICommand 并通过 JavaScript 触发它
  • 实现您自己的 UICommand。据我所知,我定义了一个隐藏参数,用于将小程序标记为表单提交控件,在请求处理周期中,UICommand 实现将找出并触发操作。也许应该实现一个虚拟控件(类似于 f:viewParam)作为 MethodExpressions 的端点。
  • 将监听器附加到(随机)控件或更通用的事件监听器,然后在此处执行您的操作。在这种情况下,导航是如何完成的?

最佳答案

如果在嵌入了 applet 的同一页面中没有物理 JSF View ,这是不可能的。所以,你真的应该至少在同一个页面中有一个 <h:form> 和一个 <h:commandButton> ,如果有必要被 CSS display: none; 隐藏。这仅仅是因为 JSF 需要在服务器端具有该表单的 View 状态,以防止类似 CSRF 的攻击。如果页面中有物理 <h:form> 对您来说不是问题(这在您的特定情况下似乎是正确的),那么您可以让 Applet 填充字段(如果有)并单击按钮使用 Applet-JavaScript 通信的形式。

除此之外,一个简单的 servlet 或一个像 JAX-RS/JAX-WS 这样的真正的网络服务 API 确实是最好的方法。 JSF 是基于组件的 MVC 框架,而不是 Web 服务框架。这就是我在该链接问题中的回答试图阐明的内容:使用正确的工具来完成工作

关于JSF/Applet 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8072855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com