我读了很多关于f:ajax与其他jsf或html标签一起工作但看起来不够用的!从未在h:commandButton(使用f:ajax)时触发JSF动作
我有一个commandButton,在我的页面中有一个(必要的)f:ajax标记,并且这个动作从不被触发。这是代码。
<html>
<h:head>
</h:head>
<h:body>
<h:form>
<h:commandButton action="#{bean.myFirstFunction}" value="Submit">
<f:ajax render=":wrap" />
</h:commandButton>
</h:form>
<h:panelGroup id="wrap">
<h:panelGroup id="content" rendered="#{bean.myVariable != null}">
<h:form>
<h:commandButton action="#{bean.mySecondFunction}" value="Submit">
<f:ajax render=":wrap" />
</h:commandButton>
</h:form>
</h:panelGroup>
</panelGroup>
<h:body>
</html>
所以像上面我有两个按钮,第一个出来的包装作品,它必须显示其在开始时隐藏在包裹面板。第二个是包装,必须启动一个完全不同的行动。 (包裹必须保持显示)
这是豆。
@ManagedBean(name = "bean")
@ViewScoped
public class myBean {
private Object myVariable;
public void setMyVariable(Object o) { ... }
public Object getMyVariable() { ... }
@PostConstruct
public void init() {
this.myVariable = null;
}
public void myFirstFonction() {
this.myVariable = new Object();
}
public void mySecondAction() {
System.out.println("here");
}
}
当我启动时,我看到第一个按钮。我点击它,第二个出现。 (所以第一个函数被调用,对象被实例化并且与ajax标签一起呈现包装 但是,当单击第二个按钮时,没有任何反应。
我已经写了我的代码的一部分,我希望这个错误是在这里。
我认为这是对面板组的渲染选项,但我不能准确地找到它。
感谢
这是否适用于RequestScope托管bean? –
点是9 https://stackoverflow.com/questions/2118656/hcommandlink-hcommandbutton-is-not-being-invoked/2120183#212018 – Saljack
@Saljack:是的,列表自从不断更新。 – BalusC