Primefaces RequestContext scrollTo 不起作用

2023-12-31

Primefaces v3.5

尝试使用RequestContext.getContext().scrollTo("")在 ajax 请求结束时以编程方式滚动到我的表单。

XHTML 片段:

<h:form id="genericMessagesForm">
                    <p:messages id="genericMessages" />
                </h:form>
<p:commandButton id="testButton" 
            value="Test" process="#{cc.attrs.itemName}Final, @this"
                actionListener="#{myBean.methodCalledByAjax()}" />

Bean:

public void methodCalledByAjax() {
    List<String> updateTargets = new ArrayList<String>();
                updateTargets.add("currentRecordForm");
                updateTargets.add("genericMessagesForm");
                RequestContext.getCurrentInstance().update(updateTargets);
                RequestContext.getCurrentInstance().scrollTo("genericMessagesForm");
}

Update does work.

滚动到does NOT工作(相同的 ID!)。

没有抛出服务器错误。

没有抛出 JavaScript 控制台错误。

浏览器尝试过:Firefox(最新)、Chrome(最新)、IE8。


您查看文档了吗?这是来自RequestContext#scrollTo() javadoc http://www.primefaces.org/docs/api/3.5/org/primefaces/context/RequestContext.html#scrollTo%28java.lang.String%29:

scrollTo

public abstract void scrollTo(String clientId)

ajax 请求完成后滚动到某个组件。

参数:

clientId- 组件的客户端标识符。

看,它说的是客户端 ID,而不是组件 ID。这也是有道理的,滚动工作最终是由 JavaScript 通过document.getElementById()和朋友。这仅适用于客户端 ID。

对于还没有全部记住的初学者NamingContainer http://docs.oracle.com/javaee/6/api/javax/faces/component/NamingContainer.html事情,找出正确的客户端 ID 的一个简单方法是通过右键单击查看 JSF 生成的 HTML 输出,查看源代码在网络浏览器中。

For a

<h:form id="genericMessagesForm">
    <p:messages id="genericMessages" />
</h:form>

这就是类似的东西

<form id="genericMessagesForm" ...>
    <div id="genericMessagesForm:genericMessages" ...>
        ...
    </div>
</form>

因此,相应地修复调用:

requestContext.scrollTo("genericMessagesForm:genericMessages");

顺便说一句,如果表格仅包含<p:messages>,那么您也可以完全删除整个表单。这<p:messages>不是一个EditableValueHolder http://docs.oracle.com/javaee/6/api/javax/faces/component/EditableValueHolder.html nor ActionSource http://docs.oracle.com/javaee/6/api/javax/faces/component/ActionSource.html组件,因此不需要放置在UIForm http://docs.oracle.com/javaee/6/api/javax/faces/component/UIForm.html成分。这样你就可以继续使用你最初的尝试。

也可以看看:

  • 如何找到ajax更新/渲染组件的客户端ID?找不到带有从“bar”引用的表达式“foo”的组件 https://stackoverflow.com/questions/8634156/how-to-reference-components-in-jsf-ajax-cannot-find-component-with-identifier/8644762#8644762
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Primefaces RequestContext scrollTo 不起作用 的相关文章

  • JSF UIComponent 绑定、可序列化和视图范围

    我有一个视图范围的 bean 实现Serializable and a UIComponent通过绑定传入 ManagedBean ViewScoped public class ViewScopedBean implements Seri
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • 如何显示/隐藏jsf组件

    在我的一个 JSF 应用程序中 顶部的标题部分包含 selectOneMenu 底部的内容部分显示过滤器组件 默认情况下 应用程序首先在顶部显示 selectOneMenu 数据 在底部显示相应的 Filter 信息 如果用户选择不同的se
  • a4j:commandLink 重新渲染后停止工作

    我创建了这个测试用例来隔离我的问题 一旦轮询执行 ajax 更新 a4j commandLink 操作就不会执行 如果我们在轮询重新渲染之前关闭 modalPanel 则会执行它 有什么建议吗 提前致谢 测试 xhtml
  • p:对话框没有按预期工作?

    我有两个 p commandLink
  • 内插入换行符

    基本上我只是想添加一个 br 或等效的东西 到 a 的 值 属性
  • JSF 2:如何在同一输入中显示不同的ajax状态?

    当每个字段失去焦点时 我想验证表单中的每个字段 当发生这种情况时 我希望发生以下操作 1 在字段的右侧出现一个图像 一个 gif 表示系统正在检查用户输入 2 完成后 会在右侧出现另一个 gif 取决于输入 例如 success gif 或
  • 在 JSF 中格式化双精度型

    我有一个与这里发现的问题类似的问题 JSF selectItem 标签格式 https stackoverflow com questions 86531 jsf selectitem label formatting 我想要做的是接受 d
  • JSF 2.0 request.getParameter 返回编码错误的字符串

    我正在用 JSF 2 0 编写一个应用程序 它支持多种语言 其中包括带有特殊字符的语言 我使用 String value request getParameter name 和 POST 方法 页面编码设置为 UTF 8 应用程序部署在 a
  • JSF a4j:设置“禁用”时命令按钮不起作用

    当我在 a4j commandButton 上包含 disabled 属性时 不会执行该按钮的操作 去掉 禁用 属性会使其正常工作 我没有进行任何特殊的验证 据我所知 也没有看到任何验证错误消息 这是我的页面的一部分
  • 如何以编程方式将文件上传到网站?

    我必须将文件上传到服务器 该服务器仅公开带有文件上传按钮的 jsf 网页 通过 http 我必须自动化一个进程 作为java独立进程完成 该进程生成一个文件并将文件上传到服务器 遗憾的是 必须上传文件的服务器不提供FTP或SFTP 有没有办
  • JSF 和库的不明确性

    在花了一些时间使用 servlet 和 JSP 之后 现在我正在尝试了解一些有关 JSF 的知识 我已经学习了基础知识 做了几个简单的例子 对 工作流程 有了基本的了解 但我仍然无法理解 javax faces webapp FacesSe
  • 将方法参数/参数传递给复合组件操作属性

    标题确实说明了一切 我尝试过 但失败并出现以下错误 Illegal attempt to pass arguments to a composite component lookup expression i e cc attrs iden
  • JSF中直接更改URL来限制用户访问页面

    我的应用程序中有两种用户 客户和卖家 我正在使用一个PhaseListener在JSF中防止用户在未登录的情况下访问页面 但在登录后我不知道如何防止用户更改地址栏中的URL并访问他也不允许的页面 例如 阻止客户访问卖家页面 有谁知道我如何防
  • jsf中的会话注销问题

    我正在开发一个 Web 应用程序 并使用框架 jsf hibernate 和 spring 应用程序中有不同类型的用户 根据此处登录的用户类型 我为不同的用户类型启用菜单中的链接 用户登录后 会向用户提供菜单栏中的注销链接 我已经编写了 l
  • 如何在@FacesConverter中注入@EJB、@PersistenceContext、@Inject、@Autowired等?

    我怎样才能注入像这样的依赖项 EJB PersistenceContext Inject AutoWired等在一个 FacesConverter 在我的具体情况下 我需要通过注入 EJB EJB FacesConverter public
  • 如何向 JSF 应用程序发送手动 jQuery Ajax 请求?

    我正在做一个POST 使用 jQuery 的请求似乎成功了 但是我如何在服务器端使用它并修改响应 我是否需要另一个 servlet 因为 Faces Servlet 不是为处理这个问题而设计的 ajax type POST data sta
  • f:ajax 不工作

    我很难得到f ajax从事某项工作h panelGroup 这就是我正在做的 JSF 代码
  • JSF 的最佳实践是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作

随机推荐

  • 使用按钮清除多选(角primeng涡轮表)

    是否可以通过按钮远程清除多选 或多个多选 我正在使用 primeng multiselect 和 Turbo table 我已经多次看到这个问题 但没有选择答案 以下是我的多选 span span
  • 如何在yii2中进行ajax调用?

    在 yii 1 14 版本中我们使用 CHtml ajax链接 对于 ajax 调用 在 yii2 中怎么样 你可以像这样创建一个ajax链接 Html a Your Link name controller action title gt
  • 缺少带有 .otf 的内容类型标头字体

    我使用 Laravel 框架 但是在 chrome 控制台中发生了这个错误并且font family不工作 无法加载资源 服务器响应状态为 500 缺少 Content Type 标头 In css font face font famil
  • 使用 PyDrive 上传 XLSX 并将其转换为 Google Sheets

    我正在尝试将 xlsx 文件上传到 Google 云端硬盘 我可以上传它 但是 当我们尝试在云端硬盘中打开同一文件时 必须使用 Google 表格打开它 因此 它会创建一个同名的新文件并消耗驱动器空间 我想我需要在上传时更改 MimeTyp
  • 不同IPC机制的使用

    我是一名 C 程序员 我想知道一个实时场景 我们可以使用不同的 IPC 机制 例如 PIPE 命名 共享内存 我大致知道在哪里可以使用套接字和消息队列 但对于 PIPE Named PIPE 和共享内存我没有任何想法 这只是为了了解不同的
  • 如何将elasticquery转换为kibana URL

    我正在使用 kibana 6 仪表板来显示可视化 我有一个如下所示的弹性查询 它需要传入 kibana 仪表板 URL query bool minimum should match 1 should match phrase jt tax
  • 带 VCL 样式的 Inno Setup 语言选择器

    有没有办法将语言选择器 Inno Setup 与VCL样式一起使用 如何 出现 选择安装语言 对话框之前叫做 因此您无法加载对话框的皮肤 作为解决方法 您可以实现自己的 语言 对话框 并从InitializeSetup 这样自定义对话框就会
  • 使用带条件的内连接的 Doctrine 查询生成器

    我想使用 Doctrine 的查询构建器构建以下 SQL select c from customer c join phone p on p customer id c id and p phone phone where c usern
  • SQL 查询用于在 SQL Server 中生成类似输出查询相关表的矩阵

    我有三张桌子 Product ProductID ProductName 1 Cycle 2 Scooter 3 Car Customer CustomerID CustomerName 101 Ronald 102 Michelle 10
  • MySql - 更新字符串部分的方法?

    我正在寻找一种通过 MySQL 查询仅更新字符串的一部分的方法 例如 如果我有 10 条记录 全部包含string作为字段值的一部分 有没有办法改变string to anothervalue通过一个查询对每一行进行查询 IE 对于以下情况
  • 尝试创建 Android 应用程序时出现“无可用目标”该怎么办?

    我正在尝试使用 Eclipse 创建 Android 项目 但 新建 Android 项目 窗口中的 下一步 按钮呈灰色 构建目标部分显示消息 无目标可用 我已经填写了其他所有内容 我还需要准备其他东西才能使其发挥作用吗 您是否确保将and
  • VBA将Excel图表复制到Word作为图片更改图表大小

    我想创建一个宏 从 Excel 复制图表并将其作为图片 最好是增强型图元文件 粘贴到 Word 中 我设置了一个带有表格的 Word 模板文档 该表格在应插入图片的特定单元格中包含书签 然而 使用我当前的代码 插入的图像太大并且弄乱了整个表
  • 前端敏感信息

    我正在构建我的第一个反应应用程序 不确定前端安全性 我正在调用以下第三方库 emailjs sendForm serviceID templateID templateParams userID userId字段属于敏感信息 我对 onSu
  • 如何在 Spring MVC 中针对 HTML 和 JSON 请求以不同方式处理异常

    我在 Spring 4 0 3 中使用以下异常处理程序来拦截异常并向用户显示自定义错误页面 ControllerAdvice public class ExceptionHandlerController ExceptionHandler
  • 设置 env、OSX rbenv 和捆绑包战斗

    所以我刚刚从 ubuntu 切换到 mac 设置环境并不像承诺的那么容易 这是我遵循的过程 安装了 xcode 然后进入首选项并下载command line tools 然后通过运行验证是否安装了正确的版本gcc version i686
  • 如何在另一个字段的计算中使用别名

    有谁知道是否有办法复制所使用的方法这个问题 https stackoverflow com questions 2077475 using an alias in sql calculations使用子查询的别名对 t SQL 中的另一个字
  • Google Maps API v3 仅在页面刷新后加载

    我正在为我正在处理的网页摆弄 Google Maps API 我现在的问题是 地图完全按照我的预期加载 但只有在刷新页面后才加载 如果我不刷新页面 我看到的只是画布 如果我离开页面并返回到该页面 问题仍然存在 因此调用地图似乎是一个问题in
  • Kendo UI:无法将 footerTemplate 添加到网格

    我试图在 footerTemplate 中显示字段的计数 接下来是小提琴 http jsbin com ayuug 8 edit http jsbin com ajoyug 8 edit 但是 如果没有 footerTemplate 它可以
  • 在WIndows Apache 2.4中安装casperJS和phantomJS将数据传递给PHP

    我尝试通过单击运行我的 casperjs 脚本Run网站中的按钮 我的本地设置是 Windows7 上的 PHP 5 5 14 和 Apache 2 4 正常运行 使用 php 页面进行测试 我的问题是 如何正确安装 casperJS 和
  • Primefaces RequestContext scrollTo 不起作用

    Primefaces v3 5 尝试使用RequestContext getContext scrollTo 在 ajax 请求结束时以编程方式滚动到我的表单 XHTML 片段