- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在检查 this template 的代码来自 OmniFaces Showcase app ,当我遇到一个p:selectOneMenu
中使用的以下条件时:
disabled="#{facesContext.postback and not facesContext.renderResponse}"
facesContext.postback
是
true
每当页面由 JSF 组件(commandButton/commandLink 等)生成的 POST 请求产生时,通常的预期状态是
facesContext.renderResponse
在 View 中评估时?
facesContext.renderResponse
计算结果为
true
,整个表达式的计算结果为
false
然后启用该组件。差不多吧?
最佳答案
那些<p:selectOneMenu>
组件实际上被滥用以获得一个不错的<div><ul><li>
具有最少代码的下拉菜单;) 它们的值代表当前的菜单组和页面,这些菜单组和页面设计为只读(它们没有 setter 方法)。导航由 JavaScript 进行 window.location
这是在更改事件期间处理的。他们不属于任何形式,也不参与任何形式的提交。disabled
属性理论上不是强制性的,但是当同步提交同一页面中其他地方的非 ajax JSF 表单时,PrimeFaces SelectOneMenuRenderer
还是会尝试decode()
它是完整的,即使它根本没有以任何形式封闭。当要更新模型值时,它最终会导致以下异常,因为该值没有 setter :
javax.el.PropertyNotWritableException: /WEB-INF/templates/showcase.xhtml @28,80 value="#{parent.children[0].viewId}": The class 'org.omnifaces.showcase.Page' does not have a writable property 'viewId'.
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:136)
at javax.faces.component.UIInput.updateModel(UIInput.java:818)
at javax.faces.component.UIInput.processUpdates(UIInput.java:735)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
at org.primefaces.component.panel.Panel.processUpdates(Panel.java:304)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231)
at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
disabled
属性评估
true
期间
postback ,然后是
SelectOneMenuRenderer
将跳过
decode()
在应用请求值阶段,因此也跳过模型值的更新。但是,如果它评估
true
以及在
render response phase 期间,然后它变得无法选择(因此无法使用)。因此,它不应在渲染响应阶段评估为 true。表达方式
disabled="#{facesContext.postback and not facesContext.renderResponse}"
SelectOneMenuRenderer
的奇怪行为,它基本上是一种解决方法。 (为此我还没有真正调查根本原因)。
disabled
属性并在例如
<o:onloadScript>
中调用同步提交展示页面。
关于jsf-2 - 条件 #{facesContext.postback 而不是 facesContext.renderResponse} 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068891/
我正在开发一个新项目,一切似乎都工作正常,但是当我尝试编辑一些注册表时,有时我收到了 TimeoutException,天知道这个异常有多普遍,我不知道为什么或在哪里导致这个问题,所以我拼命地尝试将许
我想将 HTTP header 属性添加到 RenderResponse . 我写了一个RenderFilter通过它我可以访问RenderResponse。不幸的是,当我调用 setProperty
我对JSF的理解还很浅。 我正在阅读文档并按照 FacesContext 的 javadoc RenderResponse 和 ResponseComplete 可以让你缩短生命周期。 我目前很困惑.
我正在检查 this template 的代码来自 OmniFaces Showcase app ,当我遇到一个p:selectOneMenu中使用的以下条件时: disabled="#{facesC
我是一名优秀的程序员,十分优秀!