Java Server Faces Ajax请求无法正常工作

时间:2013-02-12 10:22:26

标签: java ajax jsf

我使用OpenFaces库,我想执行一些ajax请求,例如如果复选框为true,则显示TextArea,但它根本不起作用。操作原理与JSF标准lib中的相同。我会告诉你我的代码:

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

}

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

1 个答案:

答案 0 :(得分:1)

加载后页面上没有标识为opisArea的元素,因为默认情况下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>