Jsf “怎么说?”;“崩溃”;p的属性:野外作业?
我正在使用PrimeFaces的组件,我想从我的bean控制它是否崩溃。我希望Jsf “怎么说?”;“崩溃”;p的属性:野外作业?,jsf,primefaces,jsf-2,jsf-2.2,fieldset,Jsf,Primefaces,Jsf 2,Jsf 2.2,Fieldset,我正在使用PrimeFaces的组件,我想从我的bean控制它是否崩溃。我希望collpased属性能够完成这项工作,但这不起作用 另一方面,“绑定”似乎正确反映了组件的状态: 我的豆子 @Named @RequestScoped public class TestBean { //with get/set private boolean collapsed; //with get/set private Fieldset fieldset; } 我的页
collpased
属性能够完成这项工作,但这不起作用
另一方面,“绑定”似乎正确反映了组件的状态:
我的豆子
@Named
@RequestScoped
public class TestBean {
//with get/set
private boolean collapsed;
//with get/set
private Fieldset fieldset;
}
我的页面:
<h:form>
<p:fieldset
id="togglebleFieldset"
legend="Toggleable Fieldset"
toggleable="true"
binding="#{testBean.fieldset}"
collapsed="#{testBean.collapsed}">
fieldset content
<p:ajax event="toggle" update="@form"/>
</p:fieldset>
<h:outputText value="Value is never updated: #{testBean.collapsed}" />
<br/><h:outputText value="Binding correctly reflects the state: #{testBean.fieldset.collapsed}" />
</h:form>
字段集内容
出于超出此问题范围的原因,使用绑定解决方案对我来说会稍微复杂一点
为什么不使用组件的折叠值更新#{testBean.collapsed}
(使用PrimeFaces的6.0和6.2版)我的猜测是
collapsed
属性只定义初始状态,无法跟踪当前状态。与其使用绑定,不如尝试使用toggle
事件跟踪状态。@ayrton但如果我想通过编程更改状态,而不仅仅是跟踪状态,该怎么办?为什么不在ajax标记上添加一个侦听器,并使用该事件切换值?@Kukeltje是的,我可以自己同步bean的状态,但是通常jsf会在幕后处理这些问题。不,不总是这样(在复杂组件中,核心jsf除了“普通”数据表之外几乎没有其他组件,大多数情况下从不)。哦并检查bean范围。它太短了!您很可能每次都重置它(布尔值不能为空);重复:?我猜折叠的属性只定义初始状态,无法跟踪当前状态。与其使用绑定,不如尝试使用toggle
事件跟踪状态。@ayrton但如果我想通过编程更改状态,而不仅仅是跟踪状态,该怎么办?为什么不在ajax标记上添加一个侦听器,并使用该事件切换值?@Kukeltje是的,我可以自己同步bean的状态,但是通常jsf会在幕后处理这些问题。不,不总是这样(在复杂组件中,核心jsf除了“普通”数据表之外几乎没有其他组件,大多数情况下从不)。哦并检查bean范围。它太短了!您很可能每次都重置它(布尔值不能为空);重复:?