JSF 语言切换器和 ajax 更新

2024-01-04

这个问题是老问题的后续JSF 2 中的语言切换器实现 https://stackoverflow.com/questions/10204001/language-switcher-implementation-in-jsf.

尽管 PrimeFaces 发布了一些较新的版本,并且我的 JSF 知识比以前好一点,但问题的实质仍然有效。

总而言之,我有一个完全 ajax 化的 xhtml 页面。

语言切换器是这样的:

<h:form id="selectLanguage" >
    <p:commandLink action="#{languageSwitcher.setLanguage('it')}" rendered="#{languageSwitcher.language!='it'}" >
        <h:graphicImage library ="images" name="it.gif" title="it" />
    </p:commandLink>
    <p:commandLink action="#{languageSwitcher.setLanguage('en')}" rendered="#{languageSwitcher.language!='en'}" >
        <h:graphicImage library ="images" name="en.gif" title="en" />
    </p:commandLink>
</h:form>

我想要那个时候it被选择时,只有en显示标志,反之亦然。我希望网页中的所有内容都使用资源包翻译进行更新。

特别是,我有一些p:dialogS 的头属性也需要更新。 对话框表单位于每个对话框内:

<p:dialog header="#{msgs.myHeader}"  ... >
    <h:form .... />
</p:dialog >

页面的其余部分是<p:layout>包含一些布局单元。每个layoutUnit包含一个带有其他需要翻译的组件的表单。

语言切换器是一个SessionScoped JSF Managed Bean.

我已经尝试了以下所有方法:

  1. <f:ajax render="@all" />在 - 的里面p:commandLink braces
  2. update="@all"里面的属性p:commandLink
  3. <p:ajax update="@all" />在 - 的里面p:commandLink braces

不幸的是,它们都不起作用。

我尝试过@all,虽然我可以插入表单的 id,但它们并不多。问题是对话框标题不会以这种方式更新。

我正在使用 PrimeFaces 3.4.1 - Mojarra 2.1.13


The update="@all"目前已知所有 PrimeFaces 版本 (3.4.2) 在 IE 中都会失败。与 ajax 响应一起传递的任何 JavaScript 代码都未正确初始化。

这在中讨论并报告为问题 4731 http://code.google.com/p/primefaces/issues/detail?id=4731.

在他们修复它之前,最好的选择是通过在每个视图(可能)包含update="@all"命令:

var originalPrimeFacesAjaxResponseFunction = PrimeFaces.ajax.AjaxResponse;
PrimeFaces.ajax.AjaxResponse = function(responseXML) {
   var newViewRoot = $(responseXML.documentElement).find("update[id='javax.faces.ViewRoot']").text();

    if (newViewRoot) {
       $('head').html(newViewRoot.substring(newViewRoot.indexOf("<head>") + 6, newViewRoot.indexOf("</head>")));
       $('body').html(newViewRoot.substring(newViewRoot.indexOf("<body>") + 6, newViewRoot.indexOf("</body>")));
    } else {
        originalPrimeFacesAjaxResponseFunction.apply(this, arguments);
    }
};

以 JS 文件的形式提供此文件,该文件由<h:outputScript target="head">在 - 的里面<h:body>以强制执行正确的装载顺序。

<h:body>
    <h:outputScript name="script.js" target="head" />
    ...
</h:body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF 语言切换器和 ajax 更新 的相关文章

  • 从 ajax json 填充数据表

    我的表没有填充 我可以看到它正在获取正确的 JSON 收到的 JSON 数据如下所示 id 1 name FooBar predicted 0 points 1 section id 1 detail alias HTML table ta
  • jQuery ajax POST 导致立即 GET 到同一 URL

    我使用 jQuery 1 4 2 和 Django 后端 并使用 Debian 上的 Firefox 3 5 15 进行开发 我使用 ajax 将一些数据发布到我的服务器 服务器将数据反射回浏览器 Firefox 正在发送 POST 然后立
  • 在Java Servlet中获取通过jquery ajax发送的参数[重复]

    这个问题在这里已经有答案了 我在网上搜索这个主题 但找不到有效的示例 我会很高兴有人能给我帮助 这就是我测试的 ajax url GetJson type POST dataType json contentType application
  • Internet Explorer 不渲染从 JQuery ajax 帖子返回的 html

    我有一个带有输入框的页面 其 onkeyup 根据输入的内容 搜索字段 触发 JQuery ajax 帖子 ajax 调用回发的 html 应该填充页面上的另一个 div 这是 jquery ajax 帖子 var o me results
  • 如果 JSF 页面受 j_security_check 保护,则 ajax 请求不会引发 ViewExpiredException

    我有一个不受保护的 JSF 页面j security check 我执行以下步骤 在浏览器中打开 JSF 页面 重新启动服务器 单击 JSF 页面上的命令按钮以发起 ajax 调用 Firebug 表明ViewExpiredExceptio
  • jquery ajax仅从另一页获取一个div块

    我有一个成功的ajax请求 可以下载整个html内容 现在我只需要获取一个包含id data today 的div标签 如何编写这样的脚本 看看这个 SOq 在 jQuery 中提取 Ajax 返回数据 https stackoverflo
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • 如何使用 .net 2.0 中的 WebBrowser 控件检查 ajax 更新?

    我有一个网页正在使用 WebBrowser 控件在 winform 应用程序中显示 我需要在网页中的 HTML 发生变化时执行一个事件 但是 我找不到通过 Ajax 更新页面时触发的事件 DocumentComplete FileDownl
  • Internet Explorer 中的 AJAX 问题

    这在 FF safari chrome 和 opera 中工作得很好 但在 IE 中却不行 错误代码是403 var datau trends php 3Frastgele 3D33 ajax type GET url loader php
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • 设置开始日期后设置 primefaces 日历结束日期

    我正在使用 primefaces 日历来创建事件 使用 mindate 参数 我禁用了当天之前的日子 即使有结束日期 我也想这样做 禁用开始日期之前的日子 我不知道如何处理这个问题 因为支持 bean 仅在验证整个表单后才获取开始日期 我需
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • 通过 jQuery Ajax 发送多个表单数据

    我有两个表单 我想通过 jQuery Ajax 调用发送数据 我成功发送了一种表单 但无法通过同一个 Ajax 调用发送这两种表单的数据 我的表格是
  • 如何将 Ajax 与 jQuery 结合使用

    function ajaxFunction var ajaxRequest The variable that makes Ajax possible try Opera 8 0 Firefox Safari ajaxRequest new
  • AJAX 进度条 - 轮询、Comet?

    我想要一些关于如何实施以下内容的建议 我想让我的用户通过 AJAX 了解在我的服务器上运行的任务的进度 我的服务器运行一个 PHP 脚本 该脚本使用 popen 函数通过 shell 命令下载文件 它定期回显 打印正在发生的事情 我想使用
  • p:对话框没有按预期工作?

    我有两个 p commandLink
  • 邮件附件媒体类型错误 Gmail API

    我正在尝试通过 Javascript 客户端中的 Gmail API 发送带有附加 jpeg 文件的消息 到目前为止我写的代码如下 ajax type POST url https www googleapis com upload gma
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 从 JavaScript 将参数传递给 p:remoteCommand

    我想将值传递给remoteCommand来自 JavaScript 如果这是可能的 我该如何做到这一点以及如何在支持 bean 中接收它们 对的 这是可能的 如何执行此操作取决于 PrimeFaces 版本 你可以在PrimeFaces 用
  • 使用jquery和coldfusion cffile上传多个文件

    不是一个真正的问题 只是想将其发布在某个地方 因为我在其他地方找不到它 现在我已经拼凑了一个工作演示 我想我会分享 这在 Coldfusion 和 Railo CFML 服务器上同样有 效 问题是 对于 CFML 开发人员来说 CFFILE

随机推荐

  • java本体论(jena)

    我正在做一些基于本体的项目 我想识别用户输入的文本的语义 有没有可能通过 jena 完成我处理本体的任务 Jena 不做自然语言处理 您想要查看类似的 APIZemanta http www zemanta com or 加来公开赛 htt
  • C++ 检查单例指针

    我有一个应用程序 它有一个 Qt C 单例记录器类 GetInstance 的实现是 if m Instance NULL try m Instance new Logger catch return m Instance 现在我在 h 文
  • 为什么我在 Terraform 中尝试 auto_accept vpc 对等互连时收到权限错误?

    我正在尝试在帐户之间创建 VPC 对等点并自动接受它 但失败并出现权限错误 这里有提供者 in the main tf provider aws region var region shared credentials file Users
  • MySQL 'select now()' 与 linux 'date' 不同步

    我希望有人可以快速解决这个问题 因为这是在我的生产服务器上 确实如标题所示 我以为 mysql 从安装它的机器上获取它的日期时间 好吧我错了 现在是下午 2 30 linux 说现在是下午 2 30 MySQL 说现在是上午 9 30 由于
  • 获取远程服务器环境变量

    问题 我们的 Cobol 应用程序在网络上的许多服务器 主要是服务器 2003 上运行 许多 如果不是全部 这些应用程序都使用环境变量进行设置 问题 您可以从一个工作站从远程已知服务器列表中收集环境变量的完整列表吗 最好我想在 Batch
  • 如何在自定义视图上显示数字键盘

    我创建了一个自定义视图 public class MyCustomView extends LinearLayout 当用户触摸它时 我显示键盘如下 Override public boolean onTouchEvent MotionEv
  • Visual C++ 到 Turbo C++

    您好 我已经用 Visual C 编写了一个程序 无论出于何种原因 现在我需要在 Turbo C 3 0 中运行 编译这个相同的程序 我已设法从某些来源获得编译器 但当我尝试编译代码时出现很多错误 我已经注释掉了 include stdaf
  • 使用 MediaCapture 从 CaptureElement 拍摄自定义分辨率的照片

    我正在使用 CaptureElement 在我的 Windows 应用商店应用程序中显示相机源 现在 我想在用户点击显示屏时以流的形式捕获照片 我使用下面的代码进行了工作 不幸的是 返回的图像分辨率仅为 640 x 360 但相机 Surf
  • 如何在Android中关闭系统对话框?

    我必须关闭这个系统Dialog 附在下面 我得到了这个值 但我无法在服务中而不是在活动中以编程方式关闭它 我的问题是 可以驳回吗 如果是 请帮助或指导我如何实现它 请检查一下 Override public void onWindowFoc
  • 找到与双打数组最接近的匹配

    鉴于下面的代码 如何将对象值列表与测试值进行比较 我正在构建一个地理定位应用程序 我将传递经度和纬度 并希望服务回复最接近这些值的位置 我开始沿着转换为字符串的路径 并将值格式化为小数点后两位 但这似乎有点太贫民窟 我正在寻找一种更优雅的解
  • 在 render_GET 或 render_POST 处理期间发布另一个 Web 查询

    我有一个使用 Twisted 编写的小型 Web 服务器 我想做的一件事是让它从另一个 Web 服务器返回结果作为加载页面的响应 也就是说 服务器 A 处对 render GET 的响应 通过http A com resource http
  • jQuery 文件上传不显示预览

    The jQuery 文件上传 http blueimp github com jQuery File Upload 插件当前不显示所选文件 有谁知道我该如何解决这个问题 我已经实现了 自定义 模板 见下文 注意我不需要显示以前上传的材料
  • 将 OAuth2AuthorizedClient 解析为 Spring bean

    我有一个自动连接许多服务的控制器 这些服务是 HTTP Restful 调用 从各种数据源检索数据 但这些服务受 OAuth2 0 保护 我正在尝试使用 Spring Security 来实现客户端凭据流 该流将允许这些服务安全地从这些受保
  • CSS3 过渡事件

    元素是否会触发任何事件来检查 css3 转换是否已开始或结束 W3C CSS 过渡草案 https www w3 org TR css3 transitions transition events CSS Transition 的完成会生成
  • 我的 SQL 出了什么问题? (查找“上一条”记录)

    我的 SQL 查询应该返回以前的记录 声明 Previous 意味着它具有不同的主键 idData 相同的 SSN Number 和较早的 Received Date 问题是 Received Date 可能相等 所以我必须寻找另一列 优先
  • SQL Server 中 INET_ATON 的等价物是什么

    正如问题所说 SQL Server 相当于什么INET ATON来自 mysql 我需要这个的原因是因为我从以下位置导入了 IP 数据库http ipinfodb com ip database php http ipinfodb com
  • 对静态变量 C++ 的未定义引用

    您好 我在以下代码中收到未定义的引用错误 class Helloworld public static int x void foo void Helloworld foo Helloworld x 10 我不想要一个static foo
  • Silverlight ClientHttp Web请求超时

    我有一个 silverlight 4 应用程序 使用 ClientHttp 堆栈来创建一个提供二进制流服务的 WebRequest 然后我从这个流中读取并做一些事情 但是 我有以下问题 服务器缓冲了它发送下来的数据 因此发送过程就像发送 暂
  • c#:如何从 List 中的特定索引读取

    我有一类人员和列表集合 因为列表包含人员类的所有值 例如 列表 ilist 有 2 个值 0 firstname lastname 1 名字2 姓氏2 现在 当我迭代列表时 我可以打印列表 但我想更改列表中某些部分的值 例如在索引 1 中
  • JSF 语言切换器和 ajax 更新

    这个问题是老问题的后续JSF 2 中的语言切换器实现 https stackoverflow com questions 10204001 language switcher implementation in jsf 尽管 PrimeFa