1

我是 JSF 的新手并使用 Java 开发 Web 应用程序。我基本上是在开发一个非常复杂的界面,加载了很多 AJAX 内容(分页、帖子、评论……)。

我将从一个基本示例开始,用户写评论。表单通过 JSF f:ajax 发送到服务器,然后我可以执行 render="sectionId",但问题是,我想让帖子不只是出现,而是向下滑动,甚至切换背景颜色。

如何使用 JSF 和 Javascript 获得这种效果?设计师(他只知道 HTML/CSS/Javscript/Jquery)说,通常,他只是对带有数据字符串的页面进行 Jquery AJAX 调用,然后页面生成一个 JSON 编码,然后他可以使用它来完成所有魔法。

我不是在问你如何在 jquery 中进行切换/颜色,它是 JSF 和 Javascript 之间的通信。那么我怎样才能将新生成的 HTML 代码发送给他的 javascript,以便他可以用它来做他想要的。

谢谢你的帮助。

4

1 回答 1

2

JSF 是一种服务器端技术,您通常会在诸如 panelGroup 之类的构造中有条件地显示内容,所以为什么不将您的 jquery 魔法包含在有条件呈现的 panelGroup 内的就绪处理程序中,如下所示:

<h:panelGroup id="ajaxRenderTarget">
  <ui:repeat value="#{bean.listOfComments}" var="var">
  ... display required information ...
  </ui:repeat>
  <h:panelGroup rendered="#{bean.showJqueryEffects}">
    <script type="text/javascript">
        jQuery(function($) {
            ... funky effects here ...
        });
    </script>
  </h:panelGroup>
</h:panelGroup>

在上面的示例中我使用了 ui:repeat 的地方,您可能并且可能会使用来自 jsf 的任何数据迭代组件或组件库(例如数据表)。

另一件要考虑的事情是OmniFaces,它具有<o:onloadScript>和许多其他值得了解的标签。

要避免的一个错误是尝试使用 jQuery ajax 函数加载 JSF 页面,服务器将没有组件树的状态并且它不会工作。

于 2012-08-05T07:42:55.687 回答