- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 OmniFaces FullAjaxExceptionHandler显示错误页面。错误页面显示正确,但这些页面的样式有问题。
我的应用程序使用的模板在 body 元素上定义了 CSS 类。这些类对于正常页面和错误页面是不同的:
普通页面:
<h:body styleClass="main-body layout-compact">
<h:body styleClass="exception-body error-page">
<error-page>
中的
web.xml
机制)。显然这不会重新渲染
<h:body>
标签,因为在检查HTML输出时,我可以看到
<body>
标签仍然包含来自正常页面的 CSS 类(而不是错误页面的类)。
<h:body>
的内容好像替换为错误页面的内容
<h:body>
而不是仅仅替换完整的
<h:body>
.我不知道这是否是默认的 JSF/FullAjaxExceptionHandler 行为。
<h:body>
使用正确的 CSS 类呈现?将 CSS 类从
<h:body>
移开不是一个选择。
最佳答案
不幸的是,这是“设计使然”。 JSF 在执行 ajax 导航时不会替换整个文档,但它只会替换单个 <head>
的子元素。和 <body>
元素,让 parent 保持不变。这样做是出于历史原因;较旧的 Internet Explorer 版本即不支持完全替换它们。
我自己做的就是简单的把样式放进<main>
元素代替。 <header>
和 <footer>
在最终的 HTML 输出中通常是相同的。基本上:
<html>
<head>
<title>...</title>
</head>
<body>
<header>...</header>
<main class="#{page.type}">...</main>
<footer>...</footer>
</body>
</html>
<body class>
修改,那么最好的办法是通过嵌入在错误页面模板中的 JavaScript 来实现。
<h:outputScript rendered="#{faces.ajaxRequest}">
document.body.className = "exception-body error-page";
</h:outputScript>
#{faces}
仅自 OmniFaces 2.5 起可用,如果您使用旧版本,请改用
#{facesContext.partialViewContext.ajaxRequest}
)。
关于jsf - h :body not rerendered when using FullAjaxExceptionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43224613/
我刚刚扩展了 OminFaces 的 FullAjaxExceptionHandler 类,以添加我的项目所需的简单功能。 我所要做的就是简单地使用记录器记录所有异常,并在日志和请求中添加唯一的错误标
所以在面对可怕的javax.faces.application.ViewExpiredException之后,我不得不在互联网上寻找合适的解决方案。幸运的是,这些解决方案随时可用,我继续采用了 Omn
我在使用 Omnifaces FullAjaxExceptionHandler ( http://showcase.omnifaces.org/exceptionhandlers/FullAjaxEx
我正在使用 OmniFaces FullAjaxExceptionHandler显示错误页面。错误页面显示正确,但这些页面的样式有问题。 我的应用程序使用的模板在 body 元素上定义了 CSS 类。
在 OmniFaces 中,FullAjaxExceptionHandler找到要使用的正确错误页面后,调用 JSF 运行时来构建 View 并呈现它,而不是包含 AJAX 调用的页面。 为什么这个?
我已经实现了 Omnifaces FullAjaxExceptionHandler,但问题是它无法处理 ajax 请求。当我单击非 ajax 按钮时 session 过期后,它运行良好。它将用户重定向
我正在使用 OmniFaces FullAjaxExceptionHandler和 PrimeFaces。我在 errorPage.xhtml 中添加了一个命令按钮,如下所示: 错误页面
我正在使用 Omnifaces FullAjaxExceptionHandler - 它工作得很好,但是当我执行一个 ajax 调用并有一个检查状态 == '成功' 的单一事件函数时,它仍然被调用,即
FullAjacExceptionHandler 只能捕获 javax.el.ELException 或 java.lang.Throwable。 Throwable 也优先于 javax.el.
我是一名优秀的程序员,十分优秀!