我试图用ajax更新一个有条件渲染的组件。
<h:form>
...
<h:commandButton value="Login" action="#{login.submit}">
<f:ajax execute="@form" render=":text" />
</h:commandButton>
</h:form>
<h:outputText id="text" value="You're logged in!" rendered="#{not empty user}" />
但是,这不起作用。我可以保证#{user}
实际上是可用的。这是如何造成的,我如何解决它?
如果组件本身没有首先渲染,则不可能通过ajax重新渲染(更新)组件。在ajax可以重新渲染组件之前,必须始终渲染组件。Ajax正在使用JavaScript文档。getElementById()查找需要更新的组件。但是如果JSF没有首先呈现组件,那么JavaScript就找不到任何要更新的内容。
解决方案是简单地引用始终渲染的父组件。
<h:form>
...
<h:commandButton ...>
<f:ajax ... render=":text" />
</h:commandButton>
</h:form>
<h:panelGroup id="text">
<h:outputText ... rendered="#{not empty user}" />
</h:panelGroup>
我有一个组件,我想在用户点击后显示/隐藏。 它是这样的: 和 只需将wasPressed属性适当地设置为true或false。我正在使用<代码> 问题是“我的按钮”的“渲染”属性的值。它明确地包括两个方面:解释和显示按钮。 只要始终存在(它只更改它的标签),仅在属性为真时才存在。否则它说: malformedXML:更新期间:找不到解释 我如何解决这个问题? 我不想恢复到在源代码中隐藏元素,所以我
问题内容: 我有一个JSF表单,上面有一个selectBooleanCheckbox。如果该复选框的值为true,则要在其旁边显示组合框。但是不知何故它不起作用。 这是我的代码: Bean类方法: 注意:从FireBug复制 这是POST请求: 响应: 问题答案: 实际上,实现所需功能的直接方法是根据复选框的选择重新呈现组合框。这可以通过以下方式完成: 请注意,该代码在Bean中不需要任何特殊字段
问题内容: 我有一个要在用户点击时显示/隐藏的组件。 就像这样: 和 在简单地设置属性为true或false适当。我正在使用。 问题是我的按钮的属性值。它明确列出了和。 只要始终存在(仅更改其标签),则仅在属性为true 时才存在。否则它说: malformedXML:更新期间:找不到说明 我怎么解决这个问题? 我不想回到隐藏源代码中的元素的位置,所以我不想使用任何jQuery toggle(-)
我对react还比较陌生,我一直在分解一个web应用程序,并用react组件替换部分。我现在正在开发一个组件,其中包含我创建的几个不同组件。 在新组件中,我在componentDidMount函数中进行API调用,并创建子组件。乍一看,一切看起来都很完美,但当我们在其中一个子组件中进行状态更改,然后在父组件中进行更改时,子组件将其状态重置为更改之前的状态。 我知道发生了什么,州政府没有被传递给家长
使用jsf 2和Primeface 3.4 我知道有许多类似的问题,但没有一个能解决这个问题。 当面板网格“内部”以固定值“true”呈现时(
我在Java中的JLabel存在一个渲染问题:我使用oberver observable模式,当我的模型通知我的视图JLabel已经更改了JLabel的内容,或者特别是在我的JLabel区域中显示的内容是随机的时。有时它渲染另一个面板中按钮的一部分,有时它渲染我在视图的其他组件中设置的颜色!但是,如果我最小化然后最大化我的帧,所有的渲染都是正确的。 对不起,我的英语不好。 EDIT这是我的JPan