Primefaces 咆哮不适用于所有页面

2023-11-29

我的网站有一个通用模板,即xhtml file而包含growl

<p:growl id="message" showDetail="true" life="3000" />

该模板将在所有页面中进一步使用。我注意到growl正在为页面工作index.xhtml但在其余页面中不起作用。下面是片段faces-config.xml file-

<navigation-rule>
    <display-name>index.xhtml</display-name>
    <from-view-id>/index.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>NORMAL_USER</from-outcome>
        <to-view-id>/home.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

但每当我访问该页面时home.xhtml通过链接http://localhost:8080/portal/home.xhtml, growl开始工作。在我使用的所有页面中update=":message"更新growl。罪魁祸首是谁?

下边是index.xhtml

<ui:composition template="/template/common/base.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <ui:define name="center">

        <h:form>
            <div align="center" style="margin-top: 10%; margin-bottom: 10%;">
                <p:panelGrid columns="2">
                    <f:facet name="header">  
                     #{msg.HEADER}
                    </f:facet>

                    <h:outputLabel for="username" value="#{msg.USERNAME}" />
                    <p:inputText id="username" value="#{client.user.username}"
                        required="true" requiredMessage="#{msg.USERNAME_REQUIRED_MSG}" />

                    <h:outputLabel for="password" value="#{msg.PASSWORD} " />
                    <p:password id="password" value="#{client.user.password}"
                        required="true" requiredMessage="#{msg.PASSWORD_REQUIRED_MSG}" />

                    <f:facet name="footer">
                        <div align="right">
                            <p:commandButton value="#{msg.LOGIN_BUTTON}" icon="ui-icon-check"
                                update=":message" action="#{client.login}" />
                        </div>
                    </f:facet>
                </p:panelGrid>
            </div>
        </h:form>

    </ui:define>
</ui:composition>

下边是base.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>My Web Portal</title>
    <h:outputStylesheet library="css" name="default.css" />
</h:head>

<h:body>

    <p:growl id="message" showDetail="true" life="3000" />

    <h:link outcome="index" style="text-decoration: none;">
        <div id="header" style="margin: 2px; width: 100%; text-align: center;">
            <p:panel>
                <h:outputText value="My Web Portal"
                    style="font-size: 20px; " />
            </p:panel>
        </div>
    </h:link>

    <div id="middle" style="margin: auto; width: 80%;">
        <ui:insert name="center"></ui:insert>
    </div>

    <div id="footer"
        style="clear: both; text-align: center; margin: 2px; width: 100%;">
        <p:panel header="2013 All rights reserved. Designed by Ravi Joshi">
            <h:link value="Home" outcome="index" />
            <p:spacer width="10px;" />
            <h:link value="About Us" outcome="index" />
            <p:spacer width="10px;" />
        </p:panel>
    </div>

</h:body>
</html>

下一页home.xhtml也在使用base.xhtml在相同的方式index.xhtml正在使用它...下面是它的片段-

<ui:composition template="/template/common/base.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <ui:define name="center">

    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->
    <!--  -->


    </ui:define>
</ui:composition>

如果带有 UICommand 按钮的父级已 预先通过 ajax 请求渲染/更新,然后是第一个操作 总会失败。第二个及后续操作将起作用。这是 由视图状态处理中的错误引起,该错误被报告为 JSF 规范 问题 790 并在 JSF 2.2 中修复。对于 JSF 2.0 和 2.1,您需要 在渲染中显式指定 ID<f:ajax>

BalusC 说here。因此,在您的情况下,您正在导航到另一个页面并陷入该视图状态错误,ajax=false表示不使用 AJAX 提交按钮,这就是它起作用的原因。

BalusC还建议使用一个脚本来修复这个错误here.

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

Primefaces 咆哮不适用于所有页面 的相关文章

随机推荐

  • Yaml 架构验证 powershell

    我正在与powershell yaml将我的 YAML 解析为 PowerShell 对象 目前 我在验证 YAML 架构时遇到问题 我用过这个包yaml 架构验证器对于我的 javascript 项目 我找不到任何熟悉的函数 模块来帮助我
  • 使用 Python 中的 PIL 或 OpenCV 将图像粘贴到两个给定坐标处的另一图像,并更改不透明度

    我有两个具有给定点的图像 每个图像一个点 需要对齐 以便结果图像是两个图像的总和 而图像 2 以 40 的不透明度粘贴在图像 1 上 我已经采取了这个question考虑在内 但我们的情况并不完全匹配 因为图像坐标是由用户提供的 并且图像可
  • Linux 中从 EBCDIC 到 UTF8 的转换

    我已经使用 Perl 从我们的数据库 AS 400 DB2 导入了一个表 问题在于该字符串是用 EBCDIC Latin 1 意大利语 编码的 如何在 Linux bash 中将生成的文件转换为纯 utf 8 从 开始 iconv f EB
  • 使用 XML 文件将 url 参数传递给 Zend_Navigation

    我正在使用 Zend Framework 1 10 8 我想在我的layout phtml 中创建一个面包屑部分 我的菜单中有一些链接具有动态 url 参数 例如http mydomain com editor edit id 42 我试图
  • 在 Python 中复制 Javascript 按位运算

    我正在尝试在 Python 中复制一个简单的按位 Javascript 操作 Javascript gt 0xA867Df55 2825379669 gt 0xA867Df55 0 1469587627 Python gt gt gt 0x
  • WP7 可以发送 HTML 邮件吗?

    WP7 可以发送 HTML 电子邮件吗 我可能忽略了它 但 EmailComposeTask 中似乎没有用于指定这一点的参数 尽管该设备能够接收和显示 HTML 电子邮件 EmailComposeTask不提供 API 来让您发送 HTML
  • openpyxl - 能够从图表中删除边框吗?

    使用 openpyxl 插入到我的工作表中的图表有边框 有没有办法通过 styles Style styles borders 模块将图表 饼图 条形图 的样式设置为没有边框 或者至少设置一个细白色边框 以便它们可以无边框打印 我在该对象上
  • 目前 Windows 上的 Git 存在哪些问题

    我想下载 msysgithere 它这样说 msysGit 项目没有足够的贡献者来提供商业级支持 如果您没有办法解决您的问题 可能有来自 msysGit 邮件列表的宝贵建议 或者吸引人们谁能解决它们 你的问题就不太可能得到解决 这听起来令人
  • 使用预编译的 Azure 函数库生成错误

    最近 我转换了一个使用 C 脚本的 Azure 函数 csx 到预编译的类库 使用适用于 Azure Functions 的 Visual Studio Studio 工具 它在 Visual Studio 2017 中成功构建 以及运行和
  • 重复,但仍然使用标准输出

    我可以施展一些魔法吗dup2 or fcntl 这样我将 stdout 重定向到一个文件 即 写入描述符 1 的任何内容都会转到一个文件 但是如果我使用其他机制 它会转到终端输出吗 如此松散 int original stdout some
  • 将字符串转换回枚举

    有没有更干净 更聪明的方法来做到这一点 我正在访问数据库来获取数据来填充对象 并将数据库字符串值转换回其枚举 我们可以假设数据库中的所有值确实是匹配枚举中的值 有问题的行是下面设置 EventLog ActionType 的行 我开始质疑我
  • 将 bytea 列转换为 OID,同时保留值

    我正在尝试改变一个bytea具有类型的列oid并仍然保留价值观 我尝试过使用如下查询 ALTER TABLE mytable ADD COLUMN mycol tmp oid UPDATE mytable SET mycol tmp CAS
  • JTextPane 格式化[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个 JTextPane 我想在其中添加行 并根据其内容使它们具有不同的格式
  • 为什么 Google Cloud SQL(使用 JDBC)从 Google App Engine 插入记录的时间比从我的个人计算机插入记录的时间长?

    我可以在 3 5 秒内从我的计算机插入 2000 条记录 GAE 需要 14 0 秒才能完成同样的事情 我看不到如何让 Google 驱动程序使用 rewriteBatchedStatements 设置 这是我的相关Java代码 packa
  • pack() 和 unpack() 在 Ruby 中如何工作

    在 Ruby 中为什么我们需要数组Packing 如何directive帮忙做这样的包装吗 我在控制台中运行了一些代码来查看指令在数组中的样子和方式 打包 但是每个指令的输出都非常相同 那么它们的核心有何不同 irb main 003 0
  • 如何更改play框架2.4.1的http端口?

    我来自 play 1 2 7 应用程序 目前正在开始使用 play 框架 2 4 1 和 scala 首先 我使用激活器 Web ui 来管理应用程序 但我无法让应用程序使用不同的 http 端口 我更改了conf application
  • 如何从另一个内容页面按钮单击打开主详细信息菜单?

    我想从另一个内容页面按钮单击事件打开主详细信息菜单 那么如何以 xamarin 形式做到这一点呢 您可以通过设置打开菜单页面MasterDetailPage IsPresented为真 简单的方法是MessagingCenter To Ma
  • 获取所有 Git 提交的列表,包括“丢失”的提交

    假设我有一个这样的图表 A B C D master E F HEAD If I do git log all oneline 我将得到所有六个提交 但如果图表是 A B C D master HEAD E F 我不会看到 E 和 F 我可
  • 为什么在“j”中计算比在“data.table”中使用“$”更快?

    也许这已经得到了回答 而我错过了 但很难搜索 一个非常简单的问题 为什么dt x 通常比dt x Example dt lt data table id 1 1e7 var rnorm 1e6 test lt microbenchmark
  • Primefaces 咆哮不适用于所有页面

    我的网站有一个通用模板 即xhtml file而包含growl