1

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

<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;
}

当我按下“点击我”标签时,我可以看到 switchTestRendered 正在运行,但“隐藏”组件没有显示。

有什么建议么?谢谢!

4

2 回答 2

1

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

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

应该:

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

谢谢!本。

于 2010-05-24T10:58:37.617 回答
0

从代码中只能看出,在“点击我”之后,“隐藏”组件渲染器没有更新。你必须找出原因

于 2010-05-24T11:00:35.043 回答