当前位置: 首页 > 面试题库 >

是否可以使用JSF ajax更新非JSF组件(纯HTML)?

陆甫
2023-03-14
问题内容

是否可以更新页面的不是JSF组件的部分?

例如,我可以更新纯HTML <div>还是需要将其包装在JSF组件中?


问题答案:

是否可以更新页面的不是JSF组件的部分?

否。待更新组件必须由提供UIViewRoot#findComponent(),以便JSF可以找到它们,对其进行调用encodeAll(),捕获生成的HTML输出,并将其传递回ajax响应,以便JavaScript可以使用它更新HTMLDOM树。 。纯HTML元素未UIComponent在JSF组件树中表示为真实实例,因此JSF已经无法首先定位它们。

例如,我可以更新纯HTML<div>还是需要将其包装在JSF组件中?

您需要将其包装在JSF组件中,例如<h:panelGroup>。但是,您可以仅使用JSF中<h:panelGroup layout="block">的real来表示<div>。这样,您无需将包裹<div>在另一个JSF组件中。

<h:panelGroup layout="block" id="foo">
    ...
</h:panelGroup>

从JSF 2.2开始,您可以使用带有属性的新直通元素功能jsf:id将HTML(5)元素声明为JSF组件。

<... xmlns:jsf="http://xmlns.jcp.org/jsf">

<div jsf:id="foo">
    ...
</div>



<main jsf:id="bar">
    ...
</main>



<section jsf:id="baz">
    ...
</section>

他们将按原样呈现其输出,但在幕后是一个具体UIPanel实例。

但是,在复合组件的情况下有一个极端的情况。你可以用下面的办法有一个HTML元素,其 通过AJAX更新。

<cc:implementation>
    <span id="#{cc.clientId}">
        ...
    </span>
</cc:implementation>

这种方法行之有效的解释是,即使复合组件 没有 将其自身呈现到HTML输出,也 可以
通过本身获得UIViewRoot#findComponent()



 类似资料:
  • 我有一个JSF表,它使用Hashmap存储选定的复选框。我的问题是:是否可以使用2D Java数组而不是Hashmap来存储密钥? 编辑我使用此代码来存储选定的键。如何为重写此代码? 我的想法是创建2D数组(它将用于映射),它将存储页面数和页面上的列表。例如,100页x 10键。 编辑2 我使用延迟加载创建了JSF表,该表从Oracle获取数据。JSF工作得既好又快。我面临的问题是,当我试图创建“

  • 问题内容: 我想使用redis的pubsub传输一些消息,但不想使用阻止,例如以下代码: 最后一部分将被阻止。我只想检查给定频道中是否有数据,该如何完成?有没有类似的方法? 问题答案: 我认为那不可能。通道没有任何“当前数据”,您订阅了一个通道并开始接收该通道上其他客户端推送的消息,因此它是一个阻塞的API。另外,如果您查看pub / sub 的Redis Commands文档,将会更加清楚。

  • 有没有一种方法让JSF支持bean导致页面上组件的更新?我不希望使用带有update属性的ajax组件来更新页面上的组件。我需要从JSF backing bean方法中触发更新。注页面上的更新可能发生在此方法完成之后或完成之前。我正在使用PrimeFaces,如果使用PrimeFaces有一个解决方案的话。

  • 问题内容: 使用h:datatable,我们可以如下显示数据 杰姆斯 汤姆 rs 哈里 但我可以显示如下所示的内容: 杰姆斯2.汤姆 克里斯4.哈里 拉斐兹,阿比 问题答案: 您可以使用支持“ newspaperColumns”和“ newspaperOrientation”属性的t:dataTable组件。NewsColumns确定表格将被划分的列数,并且报纸定向在报纸表格中确定报纸列的方向。

  • 我用这个包裹https://www.npmjs.com/package/vue-sweetalert2我想通过vue中的vue组件。以html的形式浏览。 但什么都没有。我是VueJs新手,我仍然不完全理解如何将组件作为html插入。

  • 问题内容: Facelets依赖XML名称空间来与XHTML一起使用。HTML 4怎么样,据我所知,HTML 5不支持名称空间。HTML 5还具有XHTML中不可用的一些新元素。甚至HTML 4和XHTML在它们支持的元素和属性上也有一些差异。 问题是:是否可以使用Facelets呈现HTML 4/5文档?如果是这样,怎么办? 问题答案: 由于Facelets是一种基于XML的视图技术,本质上可以