JSF - 单击另一个组件时取消隐藏jsf组件

时间:2010-05-24 10:32:58

标签: jsf ajax4jsf myfaces

我正在尝试使用一个按钮来显示上传对话框。 我试图实现这一点的方式类似于:

<h:outputText value="Click Me" id="testit">
  <a4j:support reRender="hideme" event="onclick" action="#{actions.switchTestRendered}"/>
</h:outputText>
<h:outputText id="hideme" value="back" rendered="#{actions.testRendered}"/>

使用支持bean中的代码:

private boolean testRendered = false;
public String switchTestRendered(){
 setTestRendered(!isTestRendered());
 System.out.println("Current Status:"+isTestRendered());
 return "success";
}

public void setTestRendered(boolean testRendered) {
  this.testRendered = testRendered;
}

public boolean isTestRendered() {
  return testRendered;
}

当我按下“click me”标签时,我可以看到switchTestRendered已经运行但是'hideme'组件没有显示。

有什么建议吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

知道了。 我应该重新修复我试图隐藏/显示的元素的父元素。 换句话说:

<a4j:support reRender="hideme" event="onclick" action="#{actions.switchTestRendered}"/>

应该是:

<a4j:support reRender="father_of_hideme" event="onclick" action="#{actions.switchTestRendered}"/>

谢谢! 本。

答案 1 :(得分:0)

从代码中可以看出,在“点击我”后,“隐藏”组件渲染器不会更新。你必须找出原因