1

我使用 OpenFaces 库,我想执行一些 ajax 请求,例如,如果 checkbox 是 true display TextArea,但它根本不起作用。操作原理与 JSF 标准库中的相同。我将向您展示我的代码:

<o:selectBooleanCheckbox id="addOpis" value="#{ajaxBean.opis}">
    <o:ajax event="click" execute="addOpis" render="opisArea"/>
</o:selectBooleanCheckbox> 
<h:outputLabel for="dodajOpisCheckbox" value="zaznacz aby dodać opis" />
<o:inputTextarea id="opisArea" value="#{productBean.opis}" rendered="#{ajaxBean.opis}"/>

ManagedBean 来源:

@ManagedBean(name="ajaxBean")
@RequestScoped
public class AjaxBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private boolean opis;

    public AjaxBean() {
    }

    public void setOpis(boolean opis) {
        this.opis = opis;
    }

    public boolean isOpis() {
        return opis;
    }

}

我寻找了一些解决方案,但我的代码似乎很好,请帮忙。

4

1 回答 1

1

加载后页面上没有带有idopisArea的元素,因为rendered属性默认为false。

修复它的最简单方法 - 放在opisArea元素内部,它总是会被渲染:

<h:selectBooleanCheckbox id="addOpis" value="#{testBean.opis}">
    <f:ajax event="click" execute="addOpis" render="opisArea"/>
</h:selectBooleanCheckbox> 
<h:outputLabel for="dodajOpisCheckbox" value="zaznacz aby dodać opis" />
<h:panelGroup id="opisArea" >
    <h:inputTextarea value="#{productBean.opis}" rendered="#{testBean.opis}"/>
</h:panelGroup> 
于 2013-02-12T11:12:15.060 回答